本文主要介绍awk的入门,以及一些对应的小练习。
以如下文本进行练习:
// log.txt
1 this is a awk learning test
2 awk is a key command in Linux
3 this is a:test:b:c:d
OK, let's do it.
I、基本输出
awk '{[pattern] action}' {filenames}
pattern为指定的模式,一般可以为正则表达式; action是要进行的操作; filenames为对指定的文件
test1
test1$ awk '{print $1,$4}' log.txt #每行按照空格或tab分割,输出第1项和第4项
输出入下图所示:
test2
test2$ awk -F: ':' {print $1"|"$2} log.txt #使用-F指定分隔符
输出结果如下图所示:
test3
test3$ awk -v a=1 '{print $1,$1+a}' log.txt #-v设置变量
输出结果如下图:
test4
test4$ awk -f cal.awk log.txt #调用脚本文件cal.awk
II、备注
1、除了使用print
之外也可以使用printf
函数,这样就可以控制输出格式。
2、awk中还有一些内建变量,见:
本篇只是对awk命令的入门介绍,其实这是一个很复杂的命令,也对应有自己的awk编程语言,需要更加深入的去学习。
推荐阅读AWK简明教程比我写的详细的多。