0
因此,我正在尝试编写一个脚本,它将从命令行接受参数,并将所述变量用作字段参数进行打印。该脚本必须使用任何数字或NF。awk命令行将脚本参数作为变量来搜索特定字段
所以,
echo a b c | ./awkprint.sh 1
将打印第一场(一)
,并
echo a b c | ./awkprint.sh NF
将打印最后一个字段(C)。
下面是我对脚本
awk -v awkvar=$1 '{print $awkvar}'
它完全适用于任何数量的,我在命令行中使用行......但是,只要我使用NF它似乎把它当作$ 0和印刷各个领域,所以我得到:
echo a b c | ./awkprint.sh NF
a b c
代替,
echo a b c | ./awkprint.sh NF
c
我在做什么错?
但是,你会如何获得NF工作? – rbrow 2013-02-25 14:42:07
'awk -v awkvar = $ 1'{print(awkvar ==“NF”?$ NF:$ awkvar)}'' – 2013-02-25 14:51:14
@EdMorton这只是一个'if'的常见压缩,并没有回答'NF'不能正常工作的原因。 – Rubens 2013-02-25 14:52:29