我有一个文件,我只想要 3 的倍数的行。是否有任何 UNIX 命令来执行此任务?
问问题
1790 次
2 回答
7
这使得它:
awk 'NR%3==0' file
NR
代表记录数,在这种情况下是行数。所以条件是“(行数/3)模数为0”===“行数是3的倍数”。
测试
$ cat file
hello1
hello2
hello3
hello4
hello5
hello6
hello7
hello8
hello9
hello10
$ awk 'NR%3==0' file
hello3
hello6
hello9
于 2013-08-23T15:26:33.287 回答
5
使用 GNU sed:
sed -n 0~3p filename
您可以通过更改 之前的数字来从不同的行~
开始,因此要从第一行开始,它将是:
sed -n 1~3p filename
例子:
$ cat filename
The first line
The second line
The third line
The fourth line
The fifth line
The sixth line
The seventh line
$ sed -n 0~3p filename
The third line
The sixth line
$ sed -n 1~3p filename
The first line
The fourth line
The seventh line
或者,使用非 GNU sed,如 BSD sed:
$ sed -n '3,${p;n;n;}' filename
The third line
The sixth line
于 2013-08-23T15:28:43.120 回答