Awk是一个强大的文本分析工具。与grep搜索和sed编辑相比,awk在分析数据和生成报告时特别强大。本文主要介绍Linux中awk命令的相关知识,有需要的朋友可以参考一下。
简介
Awk是一个强大的文本分析工具。与grep搜索和sed编辑相比,awk在分析数据和生成报告时特别强大。简单来说,awk就是逐行读取文件,以空格为默认分隔符对每一行进行切片,然后对切割的部分进行分析。
awk有三个不同的版本:awk、nawk和gawk,在没有特别说明的情况下一般简称为gawk。gawk是GNU版的awk。
Awk的名字来源于其创始人阿尔弗雷德艾侯、彼得温伯格和布莱恩柯尼根的姓名首字母。实际上,AWK确实有自己的语言:AWK编程语言,它被三位创始人正式定义为“风格扫描和处理语言”。它允许你创建简短的程序来读取输入文件、分类数据、处理数据、对输入进行计算、生成报告等功能。
一、选项参数说明
Awk是一种处理文本文件的语言。我们可以使用awk - help来检查其选项参数,如下所示:
二、基本用法
1.行匹配语句,这里awk只能跟单引号,格式如下:
awk“{ matched content }”匹配的文件名
例如:
现有的测试文件测试如下:
使用以下命令输出文本中每行的第1项和第4项:
awk“{打印$1,$4}”测试
您还可以添加以下内容,使其成为打印格式:
awk“{ printf ' %-8s %-10s \ n ',$1,$4}”测试
2.指定分隔符
awk“{ printf ' %-8s %-10s \ n ',$1,$4}”测试
例如:
有以下测试文件:
执行以下命令以逗号输出每行的第一项和第二项:
awk -F,' {打印$1,$2} '测试
您也可以使用以下格式的内置变量:
awk 'BEGIN{FS=',' } {print $1,$2} '测试
对于多个分隔符,首先使用空格进行拆分,然后使用其他分隔符进行拆分:
awk -F '[,]' ' {打印$1,$2,$4} '测试
3.设置变量
awk -v
例如:
以下数据可用:
执行以下命令,将每行的第一项加1:
awk-va=1“{打印$1,$1 a}”测试
您也可以使用以下命令来设置多个变量:
awk-va=1-VB=s ' {打印$1,$1 a,$1b} '测试
4.通过awk脚本运行awk命令。
Awk -f awk脚本文件名
例如:
awk -f文件. awk测试
三、运算符
例如:
1.筛选第一列大于2的行
awk ' 12美元'测试
2.筛选等于2的列。
awk '$1==2 {print $1,$3} '测试
3.筛选第一列大于2且第二列等于Are的行。
awk '$12 $2=='是' {打印$1,$2,$3} '测试
四、内建变量
例如:
' awk ' BEGIN { printf ' % 4s % 4s % 4s % 4s % 4s % 4s % 4s % 4s \ n ','文件名',' ARGC ',' FNR ',' FS ',' NF ',' NR ',' OFS ',' ORS ',' RS ';printf '-\ n ' } { printf ' % 4s % 4s % 4s % 4s % 4s % 4s % 4s % 4s % 4s \ n ',文件名,ARGC,FNR,FS,NF,NR,OFS,ORS,RS} '测试
awk-F \ ' ' BEGIN { printf ' % 4s % 4s % 4s % 4s % 4s % 4s % 4s % 4s \ n ','文件名',' ARGC ',' FNR ',' FS ',' NF ',' NR ',' OFS ',' ORS ',' RS ';printf '-\ n ' } { printf ' % 4s % 4s % 4s % 4s % 4s % 4s % 4s % 4s % 4s \ n ',文件名,ARGC,FNR,FS,NF,NR,OFS,ORS,RS} '测试
awk“{打印数量,FNR,$1,$2,$3}”测试
awk“{ print $ 1,$2,$ 5 }”OFS=“$”测试
五、使用正则,字符串匹配
例如:
1.输出包含“th”的第二列,并打印第二和第四列。
awk '$2 ~ /th/{print $2,$4} '测试
~表示模式的开始,匹配的模式存储在//。
2.输出包含“re”的行
awk '/re/'测试
六、忽略大小写
awk 'BEGIN{IGNORECASE=1} /this/'测试
七、模式取反
两美元!~ /th/{print $2,$4} '测试
啊!/th/{print $2,$4}测试
八、awk脚本
关于awk脚本,需要注意两个关键字BEGIN和END:
(1)开始{执行前存储语句};
(2)END{存储处理完所有行后要执行的语句}。
例如:
现有数据如下:
我们的awk脚本如下:
执行结果如下:
总结
以上是边肖介绍的Linux中的awk命令。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对我们网站的支持!
如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。