awk

所有awk里的action都是用单引号

比如是:

			awk '{print $1}' file.txt

是:

			awk "{print $1}" file.txt

使用-F指定列分割符

比如使用tab(\t)作为分隔符:

			awk -F"\t" '{if ($1 == 0) print $2;}' file.txt

awk里使用字典

有个文件file.txt内容如下:

a 1
b 2
a 3
b 3

分别统计a、b的和(稍微改改就可以变成统计出现次数了):

			awk '{a[$1]+=$2}END{for(i in a) print i,a[i]}' file.txt

awk中使用环境变量

打印file.txt每一行,在前面加上环境变量SHELL的值,并用tab分割:

			awk '{OFS="\t";print ENVIRON["SHELL"], $0;}' file.txt

其它有用的小技巧

				# 打印最后一行:
				awk '{print $NF}' filename
				# 打印倒数第二行:
				awk '{print $(NF-1)}' filename
				# 多个字符作为分隔符,比如将等号、逗号和空格都作为分隔符:
				awk -F '[=, ]' '{print $3, $5}' input.txt