在Linux系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被我们运维人员广泛应用于shell脚本,完成各中自动化配置任务。

awk可以直接处理目标文件,也可以和sed命令一样通过“ -f ”选项读取脚本对目标文件进行处理。

awk的语法格式如下:

sed命令常用于整行处理,而awk比较倾向于将一行分成多个字段,awk可以使用逻辑操作符“&&”,表示“与”,“||”表示“或”,“ !”表示“非”;还可以进行简单的数学运算,如+、-、*、/、%、^、分别表示加、减、乘、除、取余、和乘方。 awk包含几个特殊的内建变量(可直接用),如下所示:

awk工具的逻辑运算符: 用法示例: 1)按行输出文本:

2)按字段输出文本:

3)通过管道、双引号调用shell命令:

附加一个格式化打印——printf命令:

选项与参数如下:

  • \a:警告声音输出;
  • \b:倒退键(baskspace);
  • \f:清除屏幕;
  • \n:输出新的一行;
  • \r:也就是回车键;
  • \t:水平的[tab]键;
  • \v:垂直的[tab]键;
  • \xNN:NN为两位数的数字,可以转换成为字符;
  • %ns:其中n是数字,s代表string(字符串),也就是多少个字符;
  • %ni:其中n是数字,s代表integer(整数型),也就是多少个整数码数;
  • %N.nf:n和N都是数字,f代表floating(浮点),如果有小数码数,假设一共要十位数,但小数点有两位,那么可以表示为“%10.2f”;再假设字符宽度: 12345678;那么就是%8.2f意义:00000.00

用法如下: