簡體   English   中英

如何使用awk打印最后兩列

[英]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 awkgawk )。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM