问个很弱的,awk 如何不打印最后个一域

2025-04-25 06:46:21
推荐回答(3个)
回答1:

$ echo "a b c d" | awk '{NF-=1;print}'
a b c

NF(Number of Field)减1,就会少打印最后一个字段。

回答2:

最佳答案的网友思路很好,启发了我。原代码可以简约为echo "a b c d" | awk 'NF-=1'。不过当分隔符不是空格时,这种方法不适用。经测试后,以下方法可用:echo "a:b:c:d" | awk -F: 'OFS=":",NF-=1'

回答3:

awk '{sub( FS "[^" FS "]*$","");print $0}'