awk命令语法及案例
awk命令的用法
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。
之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。
语法
awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)
awk脚本
关于 awk 脚本,我们需要注意两个关键词 BEGIN 和 END。
BEGIN{ 这里面放的是执行前的语句 }
END {这里面放的是处理完所有的行后要执行的语句 }
{这里面放的是处理每一行时要执行的语句}
例
[root@yzy ~]# awk 'BEGIN{print "姓名\t\t年龄\nzs\t\t20\nls\t19\nww\t\t25\nmz\t\t18"}'
姓名 年龄
zs 20
ls 19
ww 25
mz 18
打印年龄
[root@yzy ~]# awk '{print $2}' ww
年龄
20
19
25
18
模式匹配
当awk读入一行时,它试图匹配脚本中的每个模式匹配规则。只有与一个特定的模式相匹配的输入行才能成为操作对象。如果没有指定操作,与模式相匹配的输入行将被打印出来(执行打印语句是一个默认操作)。
[root@yzy ~]# vim awkscript
[root@yzy ~]# cat awkscript
/[0-9]+/{print "这是一个数字"}
/[a-zA-Z]+/{print "这是一个字符串"}
/^$/{print "这是一个空行"}
[root@yzy ~]# awk -f awkscript
2
这是一个数字
w
这是一个字符串
这是一个空行
ctrl+d 退出
记录和字段
awk假设它的输入是有结构的,而不只是一串无规则的字符。在最简单的情况下,它将每个输入行作为一条记录&