Unix 如何打印3的倍数的文件行,如第3行、第6行、第9行等

Unix 如何打印3的倍数的文件行,如第3行、第6行、第9行等,unix,Unix,我有一个文件,我只想要3的倍数的行。有任何UNIX命令可以执行此任务吗?这使得它: awk 'NR%3==0' file NR表示记录的编号,在本例中为行号。因此,条件是“(行数/3)具有模数0”=“3的倍数的行” 试验 使用GNU时: sed -n 0~3p filename 您可以通过更改~前面的数字从另一行开始,因此,如果要从第一行开始,应该是: sed -n 1~3p filename 例如: $ cat filename The first line The second li

我有一个文件,我只想要3的倍数的行。有任何UNIX命令可以执行此任务吗?

这使得它:

awk 'NR%3==0' file
NR
表示记录的编号,在本例中为行号。因此,条件是“(行数/3)具有模数0”=“3的倍数的行”

试验 使用GNU时:

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
或者,对于类似BSD sed的非GNU sed:

$ sed -n '3,${p;n;n;}' filename 
The third line
The sixth line

@凯文:对不起,这需要GNU sed——大概你用的是BSD sed(如果你在Mac电脑上的话就是这种情况)。出于好奇,有没有办法用BSD sed做到这一点?+1,同样使用
sed
命令也很好。很高兴读到这一点,@ramee!既然你是新来的,记住如果你的问题已经解决了,你可以把答案标记为接受。您可以点击答案旁边的复选标记,将答案从空心切换为绿色。看看你是否有任何疑问!
$ sed -n '3,${p;n;n;}' filename 
The third line
The sixth line