我有一個輸入文件文件,其內容不斷更新 不同數量的字段,我試圖打印到一個新文件 下一輸入文件的每行的最後一個字段: AWK '{打印$(NF-1)}' OUTPUTFILEAWK-打印每行輸入文件的最後一個字段的下一個字段
錯誤: 和 AWK:(FILENAME = - FNR = 2)致命:嘗試訪問字段-1
需要幫助。在此先感謝
我有一個輸入文件文件,其內容不斷更新 不同數量的字段,我試圖打印到一個新文件 下一輸入文件的每行的最後一個字段: AWK '{打印$(NF-1)}' OUTPUTFILEAWK-打印每行輸入文件的最後一個字段的下一個字段
錯誤: 和 AWK:(FILENAME = - FNR = 2)致命:嘗試訪問字段-1
需要幫助。在此先感謝
在沒有字段(空白行或全部空白)NF
爲0,所以評估爲$(-1)
。此外,如果只有一個字段,您的代碼將打印$0
,這可能不是您想要的。
awk 'NF>=2 {print $(NF-1)}'
應該awk 'NF > 1 { print $(NF - 1); }'
awk 'NF { print $(NF - 1) }'
是不正確的。當NF == 1
它將打印$0
這不是旁邊的最後一個字段。
+1的解決方案,但失去了空語句(尾隨分號) – 2013-03-27 15:29:37
@EdMorton:你是什麼意思*「,但失去了空聲明(尾隨分號)「*? – pynexj 2013-03-28 02:29:11
語句'print $(NF-1)'後面的分號引入了一個空/空的隨後語句。只要擺脫分號並解決問題,即使用'{print $(NF-1)}'而不是'{print $(NF-1); }'。 – 2013-03-28 03:39:03