awk工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk工具相关的知识,希望对你有一定的参考价值。

awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。
命令参数:
-F fs fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:
-v var=value 赋值一个用户定义变量,将外部变量传递给awk
-f scripfile 从脚本文件中读取awk命令
-m[fr] val 对val值设置内在限制,-mf选项限制分配给val的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。
模式
模式可以是以下任意一个:
/正则表达式/:使用通配符的扩展集。
关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试。
模式匹配表达式:用运算符~(匹配)和~!(不匹配)。
BEGIN语句块、pattern语句块、END语句块:参见awk的工作原理

1、截取文档中的某个段
技术分享图片

注:-F 选项的作用是指定分隔符,如果不加-F指定,则以空格或者tab为分隔符。 Print为打印的动作,用来打印出某个字段。$1为第一个字段,$2为第二个字段,依次类推,有一个特殊的那就是$0,它表示整行。
2:匹配字符
技术分享图片
3、条件操作符
技术分享图片
awk中是可以用逻辑符号判断的,比如 ‘==’ 就是等于,也可以理解为 ‘精确匹配’ 另外也有 >, ‘>=, ‘<, ‘<=, ‘!= 等等,值得注意的是,在和数字比较时,若把比较的数字用双引号引起来后,那么awk不会认为是数字,而认为是字符,不加双引号则认为是数字。
4、awk的内置变量
awk常用的变量有:
NF :用分隔符分隔后一共有多少段
NR :行数
NF 是多少段:
技术分享图片
NR是行号:
技术分享图片
5、awk中的数学运算
awk可以把段值更改
技术分享图片

以上是关于awk工具的主要内容,如果未能解决你的问题,请参考以下文章

awk工具(三剑客)

awk工具

68.awk工具

linux的awk工具介绍

awk文本分析工具

awk工具的使用