【发布时间】:2020-02-04 18:52:14
【问题描述】:
是否可以使用一个 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 命令。
【问题讨论】:
-
只要
{a[i++] = $1 " " $3}或{a[i++] = sprintf("%s %s", $1, $3)} -
@WilliamPursell,谢谢它可以在 for 循环中完成吗?
-
当然,使用
split