特定行的 AWK 打印命令

akr*_*ram 2 unix awk

我的文件中有数百万条记录,我需要做的是打印特定行数的第 1396 至 1400 列,以及是否可以在 Excel 或记事本中获取此信息。

尝试过这个命令

awk {print $1396,$1397,$1398,$1399,$1400}' file_name
Run Code Online (Sandbox Code Playgroud)

但这是针对每一行运行的。

Ste*_*mit 7

您需要一个条件来指定要将操作应用到哪些行:

awk '<<condition goes here>> {print $1396,$1397,$1398,$1399,$1400}' file_name
Run Code Online (Sandbox Code Playgroud)

例如,仅对第 50 至 100 行执行此操作:

awk 'NR >= 50 && NR <= 100 {print $1396,$1397,$1398,$1399,$1400}' file_name
Run Code Online (Sandbox Code Playgroud)

(根据您想要做什么,您还可以拥有比这更复杂的选择模式。)

这是一个更简单的测试示例:

awk 'NR >= 3 && NR <= 5 {print $2, $3}'
Run Code Online (Sandbox Code Playgroud)

如果我在包含的输入文件上运行它

1 2 3 4
2 3 4 5
3 a b 6
4 c d 7
5 e f 8
6 7 8 9
Run Code Online (Sandbox Code Playgroud)

我得到输出

a b
c d
e f
Run Code Online (Sandbox Code Playgroud)