awk
AWK是一种处理文本文件的语言。它将文件作为记录序列处理。在一般情况下,文件内容的每行都是一个记录。每行内容都会被分割成一系列的域,因此,我们可以认为一行的第一个词为第一个域,第二个词为第二个,以此类推。AWK程序是由一些处理特定模式的语句块构成的。AWK一次可以读取一个输入行。对每个输入行,AWK解释器会判断它是否符合程序中出现的各个模式,并执行符合的模式所对应的动作。
——阿尔佛雷德·艾侯,The A-Z of Programming Languages: AWK
一句话:awk最重要的应用便是文本处理
测试文本
grade.txt
name id sex age score
a 1 boy 11 80
b 2 girl 10 89
c 3 boy 10 90
d 4 girl 9 91
awk程序
1.打印hello world.
a.创建hello.awk
#!/usr/bin/awk -f
BEGIN { print "hello world!"}
b.修改执行权限:chmod 777 hello.awk
c. 运行:./hello.awk
2.处理grade.txt文本
#!/usr/bin/awk -f
BEGIN {printf "start process"}
(total += $5)
END {printf "total:" total}
Bash awk
Awk ‘patten {action}’ file
命令打印分数大于89的人
awk '$5 > 89 { printf $0}' ./grade.txt