Shell awk打印文件的最后一行失败
我想打印最后一行的值Shell awk打印文件的最后一行失败,shell,awk,Shell,Awk,我想打印最后一行的值 $cat file 1 2 3 4 5 6 7 8 9 0 为什么输出不是0 与sed不同,awk没有指定最后一行的方法。解决办法是: $awk '{print $NR}' file 1 讨论 让我们看一下您的命令,看看它实际上做了什么。考虑这个测试文件: $ awk '{line=$0} END{print line}' file 0 现在,让我们运行您的命令: $ cat testfile a b c A B C i ii iii 如您所见,print$NR
$cat file
1
2
3
4
5
6
7
8
9
0
为什么输出不是0 与sed不同,awk没有指定最后一行的方法。解决办法是:
$awk '{print $NR}' file
1
讨论
让我们看一下您的命令,看看它实际上做了什么。考虑这个测试文件:
$ awk '{line=$0} END{print line}' file
0
现在,让我们运行您的命令:
$ cat testfile
a b c
A B C
i ii iii
如您所见,
print$NR
打印对角线。换句话说,在线编号NR
,它打印字段编号NR
。因此,在第一行,NR=1
,命令print$NR
打印第一个字段。在第二行,NR=2
,命令print$NR
打印第二个字段。依此类推。使用以下代码,它将打印任何输入文件的最后一行。这里的END
部分是开箱即用的awk
关键字,用于在main部分之后执行命令/语句。所以我只是在最后一行打印最后一行
$ awk '{print $NR}' testfile
a
B
iii
或
我明白了,太棒了。
awk 'END{print $0}' Input_file
awk 'END{print}' Input_file