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