簡體   English   中英

AWK以相反的順序讀取文件並打印指定的列

[英]AWK read file in reverse order and print specified columns

是否可以使用一個 awk 命令以相反的順序讀取文件並僅打印指定的列? 例如,有一個要解析的文本文件:

A1 1 ABC 7
B2 2 CBZ 8
C3 3 XVY 9

要以相反的順序打印行,我使用以下命令:

awk '{a[i++]=$0}END{for(j=i-1;j>=0;j--)print a[j];}' file.txt

但我只需要打印 $1 和 $3 列? 期望的輸出:

C3 XVY
B2 CBZ
A1 ABC

當然,它可以通過多種方式完成,但目標是單個 awk 命令。

在您的命令中,您將整行( $0 )存儲在數組a ,只需稍作修改,您就可以存儲所需的列,如下所示:

awk '{a[i++]=$1FS$3}END{for(j=i-1;j>=0;j--)print a[j];}'
C3 XVY
B2 CBZ
A1 ABC

如果您不介意使用另一個命令,那么tac + awk完成這項工作:

tac file | awk '{print $1, $3}'

C3 XVY
B2 CBZ
A1 ABC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM