在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
用法如下: