Linux命令——awk

awk

  • 功能:模式匹配语言

    • 参考:《awk工作原理》

    • awk是一种编程语言,用于在*nix下对文本数据进行处理;

    • 数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出;

    • 它支持用户自定义函数动态正则表达式等先进功能,是*nix下的一个强大编程工具;

    • 它可以在命令行中使用,但更多是作为脚本来使用

    • awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处;

    • 灵活性是awk一大的优势。

    • awk脚本是由模式操作组成的;

      • 模式可以是以下任意一个:

        • 正则表达式:使用通配符的扩展集;

        • 关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试。

        • 模式匹配表达式:用运算符~(匹配)和~!(不匹配);

        • BEGIN语句块、pattern语句块、END语句块;

      • 操作由一个或多个命令、函数、表达式组成,之间由换行符或分号隔开,并位于大括号内,主要部分是:

        • 变量或数组赋值

        • 输出命令

        • 内置函数

        • 控制流语句

  • 选项

    • -F fs fs指定输入分隔符,fs可以是字符串或正则表达式,如-F: -v var=value 赋值一个用户定义变量,将外部变量传递给awk -f scripfile 从脚本文件中读取awk命令 -m[fr] val 对val值设置内在限制,-mf选项限制分配给val的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。

    • -F:指定将输入分离器

    • -f:指定程序的源文件

    • –help:显示帮助信息

    • –version:显示版本信息

  • 示例

# 

参考网址