$cat file
1
2
3
4
5
6
7
8
9
0
我想打印最后一行的值。
$awk '{print $NR}' file
1
为什么输出不是0?
答案 0 :(得分:3)
与sed不同,awk没有办法指定最后一行。解决方法是:
$ awk '{line=$0} END{print line}' file
0
让我们看看你的命令,看看它究竟做了什么。考虑一下这个测试文件:
$ cat testfile
a b c
A B C
i ii iii
现在,让我们运行你的命令:
$ awk '{print $NR}' testfile
a
B
iii
如您所见,print $NR
打印对角线。换句话说,在行号NR
上,它会打印字段编号NR
。因此,在第一行NR=1
上,命令print $NR
打印第一个字段。在第二行NR=2
上,命令print $NR
打印第二个字段。等等。
答案 1 :(得分:2)
使用以下代码,它将打印任何Input_file的最后一行。这里END
部分是开箱即用的awk
关键字,用于在主要部分之后执行命令/语句。所以我只是在END部分打印行,这将打印最后一行。
awk 'END{print $0}' Input_file
OR
awk 'END{print}' Input_file