awk是一个强大的字符串处理命令。awk的功能十分丰富,但是实际上只要需要学习少量使用方式,就能够解决平时遇到的大部分问题。因此本文也主要是介绍awk中处理常见问题的方式。
命令介绍
awk对文件/数据流是按行处理
,awk会对每行数据,都执行一遍处理逻辑。awk的语法格式为 :
awk [ -F fs ] [ -v var=value ] [ 'prog' | -f progfile ] [ file ... ]
awk程序中,每一行数据都可以用$0输出。行数据会默认通过空格分隔成一组字符串,分隔后的数据可以用$1,$2...获取。当然awk也允许通过-F ''参数指定分隔符。
awk的'prog'部分格式为 pattern { action }。
其中pattern是对数据行进行过滤操作,不填则默认扫描每一行。action是处理逻辑。
awk中包含了一些内嵌的变量、方法、运算符,可以根据需要查询具体使用方法 参考文档。
举例
有如下数据,我想输出成绩在85以上的行:
1);Amit;Physics;80
2);Rahul;Maths;90
3);Shyam;Biology;87
4);Kedar;English;85
5);Hari;History;89
执行awk -F';' '{if($4>85){print $0}}' awk.txt
即可。
只要理解了awk的语法和处理原理,再结合相关文献,在实际使用中就能快速实现自己的处理述求。
网友评论