awk 命令的基本格式为:
[root@localhost ~]# awk [选项] '脚本命令' 文件名
常用的选项以及各自的含义:
| 选项 | 含义 |
|---|---|
| -F fs | 指定以 fs 作为输入行的分隔符,awk 命令默认分隔符为空格或制表符。 |
| -f file | 从脚本文件中读取 awk 脚本指令,以取代直接在命令行中输入指令。 |
| -v var=val | 在执行处理过程之前,设置一个变量 var,并给其设备初始值为 val。 |
awk 的强大之处在于脚本命令,它由 2 部分组成,分别为匹配规则和执行命令,如下所示:'匹配规则{执行命令}'
这里的匹配规则,和 sed 命令中的 address 部分作用相同,用来指定脚本命令可以作用到文本内容中的具体行,可以使用字符串(比如 /demo/,表示查看含有 demo 字符串的行)或者正则表达式指定。另外需要注意的是,整个脚本命令是用单引号(’’)括起,而其中的执行命令部分需要用大括号({})括起来。
在 awk 程序执行时,如果没有指定执行命令,则默认会把匹配的行输出;如果不指定匹配规则,则默认匹配文本中所有的行。
举个简单的例子:
[root@localhost ~]# awk '/^$/ {print "Blank line"}' test.txt
在此命令中,/^$/ 是一个正则表达式,功能是匹配文本中的空白行,同时可以看到,执行命令使用的是 print 命令,此命令经常会使用,它的作用很简单,就是将指定的文本进行输出。因此,整个命令的功能是,如果 test.txt 有 N 个空白行,那么执行此命令会输出 N 个 Blank line。
例:
统计文件中以“|”为分隔符,$2和$5为每行第2和第5个字段的内容
awk -F '\t' '{print $1,$2,$3}' ./xxxx.txt > ./test.txt
cat 1.txt | awk 'END{print NF}'
awk '{print $1}' ./1_result.txt > ./t1.txt
查询aprt-r-00000文件中指定内容:以’\t’分隔,第三个值是否有为1的
cat aprt-r-00000 | awk -F ‘\t’ ‘{print$3}’ | grep -i 1
