linux里awk命令,linux常用命令awk

linux里awk命令,linux常用命令awk,详解Linux中的awk命令

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命令。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对我们网站的支持!

如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!

linux里awk命令,linux常用命令awk