繁体   English   中英

awk打印文件的最后一行失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM