从文本文件中提取行1,11,21等

vis*_*hnu -4 shell

是否可以使用Linux命令从文本文件中检索第1,11,21,31行的数据?

我需要为2,12,22,32等做同样的事情.

Mat*_*Mat 5

你可以使用awk这个:

awk '(NR % 10 == 1){ print }' your_input_file
Run Code Online (Sandbox Code Playgroud)

例如:

 $ seq 1 100|awk '(NR%10 == 2){print}'
2
12
22
32
42
52
62
72
82
92
Run Code Online (Sandbox Code Playgroud)

正如格伦杰克曼指出的那样,您可以参数化awk脚本以使其更易于使用.鉴于这print是默认操作,您可以简单地写:

 $ seq 1 20|awk -v step=10 -v idx=3 'NR%step==idx'
3
13
Run Code Online (Sandbox Code Playgroud)