ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

awk命令

2020-04-03 10:09:35  阅读:330  来源: 互联网

标签:oldboy 信息 命令 awk Xiaoyu print txt


1 awk命令

1.1 awk作用

擅长取列,擅长统计分析 实际上是gawk的软链接。模式扫描(条件分配),程序语言

1.2 语法

awk [参数] '模式(条件) {动作}(指令)' 文件信息

1.3 功能

查询,排除,替换
以下命令所需环境: cat > oldboy.txt <<EOF
Zhang Dandan 41117397 :250: 100 :175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250: 100 :175
Wang Xiaoai 3515064655 :50:95:135
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250: 100 :175
EOF
1、显示Xiaoyu的姓氏和ID号码
(1)awk '/Xiaoyu/{print $1,$3}' oldboy.txt

(2)awk '/Xiaoyu/{print $1" "$3}' oldboy.txt

要用逗号,或者双引号分隔
按照指定列进行搜索信息
(1)awk '$2~/Xiaoyu/' oldboy.txt 将有Xiaoyu的信息显示出来

(2)awk '$2!~/Xiaoyu/' oldboy.txt !:表示取反 排除Xiaoyu的信息,将其他信息取出来
~:代表在awk中列的匹配方式

2、姓氏是zhang的人,显示他的第二次捐款金额及他的名字
第一步:先找出姓氏是张的人
awk '$1~/Zhang/' oldboy.txt

第二步:显示出名字和所有捐款记录
awk '$1~/Zhang/{print$2,$4}' oldboy.txt

第三步:指定字符信息作为空格符
awk -F "[: ]+" '$1~/Zhang/{print$2,$5}' oldboy.txt

补充:awk默认使用空格进行作为列分隔符 默认区分大小写
-F 指定分隔符的符号信息
利用 -F "[: ]+" -F 指定括号里的冒号,空格作为分隔符 +:将多个连续的分隔符汇总为一个整体
3、显示所有以41开头的ID号码人的全名和ID号码
第一步:找出ID号码是41开头的人
awk '$3~/^41/' oldboy.txt

第二步:显示出人的全名和ID号码
awk '$3~/^41/{print$1,$2,$3}' oldboy.txt|column -t

columt -t :对文件内容信息进行排序
4、显示所有ID号码最后一位数字是1或5的人的全名
第一步:找出ID号码最后一位数字是1或5的信息
awk '$3~/[15]$/'oldboy.txt
awk '$3~/1$|5$/' oldboy.txt
[ ]、| :在这里都是或者的关系

第二步:显示出全名信息
awk '$3~/[15]$/{print$1,$2}' oldboy.txt|column -t

5、显示文件中第二行,第三行的信息
第一步:显示第二行
awk 'NR2' oldboy.txt

第二步:显示第三列
awk 'NR2{print $3}' oldboy.txt

NR:表示行号信息,取出第几行信息
NR2:取出第二行信息
6、显示Xiaoyu的捐款,每个捐款数值都有以$开头,
方法一:awk -F "[:]" 'NR2{print "$"$2"$"$3"$"$4}' oldboy.txt

方法二:awk '$2~/Xiaoyu/{print $4}' oldboy.txt|sed 's#:#$#g'

方法三:awk '$2~/Xiaoyu/{print $4}' oldboy.txt|tr ":" "$"

方法四:awk替换功能
gsub(/要替换的信息/,"替换成什么",将第几列进行替换)
awk '$2~/Xiaoyu/{gsub(/

标签:oldboy,信息,命令,awk,Xiaoyu,print,txt
来源: https://www.cnblogs.com/sandshell/p/12624715.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有