awk小记

awk是Linux下的一个比较有用的工具,但是也比较难学。对于处理日志等每行格式相同的文本文件,非常方便和强大。

格式是 awk 动作 文件名, 如 awk ‘{print $0}’ demo.txt

$0代表当前行 $1 $2 $3分别代表第一、二、三个字段。 -F可以指定分隔符

awk -F ‘:’ ‘{print $1}’ demo.txt 就是把默认的空格分隔符换成了:

变量NF表示当前行有多少字段 $NF表示最后一个字段 $(NF-1)就是倒数第二个字段

awk还可以指定输出条件,仅输出符合条件的行。

awk ‘条件 动作’ 文件名

如 只输出奇数行 awk -F ‘:’ ‘NR % 2 == 1 {print $1}’ demo.txt

只输出第三行以后的行: awk -F ‘:’ ‘NR > 3 {print $1}’ demo.txt

awk -F ‘:’ ‘{if ($1 > “m”) print $2}’ demo.txt

Written on July 19, 2019