[英]How to print last two columns using awk
我想要的只是打印的最后兩列。
您可以使用變量NF
,它設置為輸入記錄中的字段總數:
awk '{print $(NF-1),"\t",$NF}' file
這假設您至少有2個字段。
awk '{print $NF-1, $NF}' inputfile
注意:僅當至少存在兩列時,此方法才有效。 在有一列的記錄中,你會得到一個虛假的"-1 column1"
@jim mcnamara:嘗試在NF
周圍使用括號,即$(NF-1)
和$(NF)
而不是$NF-1
和$NF
(適用於Mac OS X 10.6.8 for FreeBSD awk
和gawk
)。
echo '
1 2
2 3
one
one two three
' | gawk '{if (NF >= 2) print $(NF-1), $(NF);}'
# output:
# 1 2
# 2 3
# two three
使用gawk展示問題:
gawk '{ print $NF-1, $NF}' filename
1 2
2 3
-1 one
-1 three
# cat filename
1 2
2 3
one
one two three
我只是嘲笑Solaris 10 M4000:所以,gawk是$ NF-1 vs. $(NF-1)問題的杯子。 下一個問題POSIX說什么? 每:
http://www.opengroup.org/onlinepubs/009695399/utilities/awk.html
沒有方向這樣或那樣。 不好。 gawk意味着減法,其他awks意味着字段數或減法。 哼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.