SED:如何删除文件中的每10行(精简或子采样文件)

SED:如何删除文件中的每10行(精简或子采样文件),sed,subsampling,Sed,Subsampling,到目前为止,我有: sed -n '0,10p' yourfile > newfile 但它不起作用,只输出一个空白文件:(您的问题模棱两可,下面是我能想到的所有排列: 仅打印前10行 跳过前10行 每10行打印一次 每10行删除一次 你的问题模棱两可,所以我能想到的每一种排列方式如下: 仅打印前10行 跳过前10行 每10行打印一次 每10行删除一次 它更长,但它是一种单一的语言——对于每个人尝试做的事情,语法和参数都不一样 它更长,但它是一种单一的语言——对于每个人试图做的事情,它的

到目前为止,我有:

sed -n '0,10p' yourfile > newfile

但它不起作用,只输出一个空白文件:(

您的问题模棱两可,下面是我能想到的所有排列:

仅打印前10行 跳过前10行 每10行打印一次 每10行删除一次
你的问题模棱两可,所以我能想到的每一种排列方式如下:

仅打印前10行 跳过前10行 每10行打印一次 每10行删除一次 它更长,但它是一种单一的语言——对于每个人尝试做的事情,语法和参数都不一样

它更长,但它是一种单一的语言——对于每个人试图做的事情,它的语法和参数都不一样。

(因为模棱两可的问题只能有模棱两可的答案……)

每十行打印一次(GNU
sed
):

或者(GNU
sed
):

要删除每十行(GNU
sed
):

要打印前十行(POSIX):

要删除前十行(POSIX):

(因为模棱两可的问题只能有模棱两可的答案……)

每十行打印一次(GNU
sed
):

或者(GNU
sed
):

要删除每十行(GNU
sed
):

要打印前十行(POSIX):

要删除前十行(POSIX):


使用非GNU
sed
,每使用10行打印一次

sed'10,${p;n;n;n;n;n;n;n;n;}'

(GNU:
sed-n'0~10p'

并删除每10行使用

sed'n;n;n;n;n;n;n;n;n;d;'


(GNU:
sed-n'0~10d'

使用非GNU
sed
,每使用10行打印一次

sed'10,${p;n;n;n;n;n;n;n;n;}'

(GNU:
sed-n'0~10p'

并删除每10行使用

sed'n;n;n;n;n;n;n;n;n;d;'


(GNU:
sed-n'0~10d'

请提供一个示例输入和预期输出。“每10行删除一次”是相当模糊的…您是希望每10行删除一行,还是只希望文件的前10行,还是只希望看到每个文件的第10行?出于好奇,我的答案中的哪一行是您想要的?可能相关:请提供一个输入示例和预期输出。“每10行删除一行”是相当模糊的…您是希望删除每10行,还是只希望看到文件的前10行,还是只希望看到每个文件的第10行?出于好奇,我的答案中的哪一行是您想要的?可能相关:
head -n10 yourfile > newfile
tail -n+10 yourfile > newfile
awk '!(NR%10)' yourfile > newfile
awk 'NR%10' yourfile > newfile
python -c "import sys;sys.stdout.write(''.join(line for i, line in enumerate(open('yourfile')) if i%10 == 0 ))" >newfile
$ seq 1 100 | sed -n '0~10p'
10
20
30
40
...
100
$ seq 1 100 | sed '0~10!d'
10
20
30
40
...
100
$ seq 1 100 | sed '0~10d'
1
...
9
11
...
19
21
...
29
31
...
39
41
...
$ seq 1 100 | sed '11,$d'
1
2
3
4
5
6
7
8
9
10
$ seq 1 100 | sed '1,10d'
11
12
13
14
...
100