awk命令总结

关于awk
awk是可以将文本整理成为表格,通过列来取出我们想要的内容,除此之外awk命令还擅长统计。
awk命令格式及参数
命令格式:

awk [选项] '条件{指令}' 文件信息
选项作用
-F指定分割符
-f指定脚本文件
-v设置变量
符号作用
{}包含一条或多条命令
//字符串或者正则表达式匹配
取反
NR行号
FSBEGIN时指定分隔符
$NF最后一列
$n文件第n列,n为0时表示整行

print指令
print顾名思义是输出,也是awk常用的一个指令,通过一个测试文件来看一下效果。
1.创建测试文件test.txt。
在这里插入图片描述
2.查看文件全部内容,awk不指定分割符输出时,默认分割符为空格,且将多个空格合并为一个分隔符。
在这里插入图片描述
3.查看文件第1列
在这里插入图片描述
4.查看多列
在这里插入图片描述
5.查看指定列
在这里插入图片描述
6.查看指定行
在这里插入图片描述
7.制定分割符为空格和冒号

这里 -F后面双引号里表示当遇到一个或者多个空格或者:时就为一个分隔符

[root@localhost00 testfile]# awk -F "[ :]+" '{print $0}' test.txt 
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
1		2			3		   4   5   6

此时查看第五列就为:
[root@localhost00 testfile]# awk -F "[ :]+" '{print $5}' test.txt 
100
90
60
80
100
95
168
75
100

匹配输出
测试文件
在这里插入图片描述
1.输出第二列为Dandan的整行信息
在这里插入图片描述
2.输出最后一列以175结尾的整行信息
在这里插入图片描述
3.取反操作
在这里插入图片描述

//匹配总结: 在使用//匹配时,可以直接匹配字符串,也可以使用正则表达式进行匹配。

特殊模式BEGIN和END
1.BEGIN
BEGIN是指在处理文件之前进行的操作,就是优先执行BEGIN中的命令,之后才会执行处理文本的命令。
举例说明:

[root@localhost00 testfile]# awk 'BEGIN{print "姓氏","名称"}{print $1,$2}' test.txt 
姓氏 名称    ==》先执行BEGIN中的命令,print"姓氏", "名称"
Zhang Dandan
Zhang Xiaoyu
Meng Feixue
Wu Waiwai
Liu Bingbing      ==》之后再执行后面处理文本的命令,{print $1,$2}
Wang Xiaoai
Zi Gege
Li Youjiu
Lao Nanhai

2.END
END则是指执行完处理文本的命令之后再执行的命令。
在这里插入图片描述
END还可以实现统计计算的功能
1.统计
在这里插入图片描述
2.计算
在这里插入图片描述
在这里插入图片描述
END总结: 在使用awk计算不加END时,会将计算的每一步都输出,也就是说每进行一次相加便会输出一次i的值,而加了END之后,则会先将END前的代码执行完后再去执行END后面的代码,所以只会输出计算完成后i的值,也就是最终的结果。
-f调用脚本
1.首先写一个test.awk脚本,脚本内容为指定空格或:为分隔符,输出文件第5列
在这里插入图片描述
2.之后使用-f选项调用test.awk脚本即可实现脚本中的功能。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值