簡體   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