5

我有一个输入文件文件,其内容不断更新不同数量的字段,我试图将输入文件每行的最后一个字段的下一个字段打印到一个新文件:awk'{print $( NF-1)}' 输出文件

错误:和 awk:(FILENAME=- FNR=2) 致命:尝试访问字段 -1

需要帮忙。提前致谢

4

3 回答 3

9

在没有字段的行(空白行或所有空格)NF上为 0,因此计算结果为$(-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 回答