awk 命令最常见用法

awk 最基本最常见的用法是——过滤出一行文本中的指定位置的字段。

这个文本,可以从管道输入,也可以从文件中输入。

举例说明:

1 过滤出第二个字段

# 输入源为管道
echo 'a b c d'|awk '{print $2}'
# 输出:b

# 输入源为文本
echo 'a b c d' > test.txt
awk '{print $2}' test.txt

2 指定字段分隔符

默认分隔符是空格或tab,有时需要指定为其他符号(如逗号)。

echo 'a,b,c,d'|awk -F, '{print $2}'
# 输出:b

echo 'a, b, c, d'|awk -F, '{print $2}'
# 输出: b

echo 'a, b, c, d'|awk -F',' '{print $2}'
# 输出: b

echo 'a, b, c, d'|awk -F', ' '{print $2}'
# 输出:b

3 格式化输出

echo 'a b c d'|awk '{printf "%-8s %-10s\n",$1,$4}'
# 输出:a        d

4 输出最后一个字段

(NF 是一个內建变量,表示字段的数目)

echo 'a b c d'|awk '{print $NF}'
# 输出:d

echo 'a b c d'|awk '{print NF}'
# 输出:4

 

以上就是目前用得较多的情况。简单而实用。

更多参考:https://www.runoob.com/linux/linux-comm-awk.html