[英]shell/awk — print certain fields of a row if a column exists in another file
[英]awk print the last row of file failed
$cat file
1
2
3
4
5
6
7
8
9
0
我想打印最后一行的值。
$awk '{print $NR}' file
1
为什么输出不为0?
与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
打印第二个字段。 等等。
使用以下代码,它将打印任何Input_file的最后一行。 END
部分是开箱即用的awk
关键字,用于执行主要部分之后的命令/语句。 因此,我只是在END部分中打印该行,这将打印最后一行。
awk 'END{print $0}' Input_file
要么
awk 'END{print}' Input_file
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.