入力ファイル ファイルがあり、その内容はさまざまな数のフィールドで常に更新されます。私がしようとしているのは、入力ファイルの各行の最後のフィールドの次のフィールドを新しいファイルに出力することです: awk '{print $( NF-1)}' 出力ファイル
エラー: および awk: (FILENAME=- FNR=2) 致命的: フィールド -1 にアクセスしようとしています
助けが必要。前もって感謝します
フィールドのない行 (空白行、またはすべての空白)NF
は 0 であるため、 と評価され$(-1)
ます。また、フィールドが 1 つしかない場合、コードは出力されますが、$0
これは必要なものではない可能性があります。
awk 'NF>=2 {print $(NF-1)}'
する必要がありますawk 'NF > 1 { print $(NF - 1); }'
awk 'NF { print $(NF - 1) }'
は正しくありません。最後のフィールドの隣にないNF == 1
ものを印刷するとき。$0
別の awk 行: (少しゴルフをしている):
awk 'NF>1&&$0=$(NF-1)'