5

入力ファイル ファイルがあり、その内容はさまざまな数のフィールドで常に更新されます。私がしようとしているのは、入力ファイルの各行の最後のフィールドの次のフィールドを新しいファイルに出力することです: awk '{print $( NF-1)}' 出力ファイル

エラー: および awk: (FILENAME=- FNR=2) 致命的: フィールド -1 にアクセスしようとしています

助けが必要。前もって感謝します

4

3 に答える 3

9

フィールドのない行 (空白行、またはすべての空白)NFは 0 であるため、 と評価され$(-1)ます。また、フィールドが 1 つしかない場合、コードは出力されますが、$0これは必要なものではない可能性があります。

awk 'NF>=2 {print $(NF-1)}'
于 2013-03-27T02:57:47.103 に答える
3

する必要がありますawk 'NF > 1 { print $(NF - 1); }'

awk 'NF { print $(NF - 1) }'は正しくありません。最後のフィールドの隣にないNF == 1ものを印刷するとき。$0

于 2013-03-27T05:00:11.283 に答える
-1

別の awk 行: (少しゴルフをしている):

awk 'NF>1&&$0=$(NF-1)' 
于 2013-03-27T11:22:55.163 に答える