到目前为止,我有这个:
sed -n '0,10p' yourfile > newfile
但它不起作用,只输出一个空白文件:(
答案 0 :(得分:4)
你的问题含糊不清,所以这是我能想到的每一种排列:
head -n10 yourfile > newfile
tail -n+10 yourfile > newfile
awk '!(NR%10)' yourfile > newfile
awk 'NR%10' yourfile > newfile
答案 1 :(得分:3)
(因为模棱两可的问题只能有一个含糊不清的答案......)
每隔十行sed
):
$ seq 1 100 | sed -n '0~10p'
10
20
30
40
...
100
或者(GNU sed
):
$ seq 1 100 | sed '0~10!d'
10
20
30
40
...
100
删除每隔十行(GNU sed
):
$ seq 1 100 | sed '0~10d'
1
...
9
11
...
19
21
...
29
31
...
39
41
...
打印前十行(POSIX):
$ seq 1 100 | sed '11,$d'
1
2
3
4
5
6
7
8
9
10
删除前十行(POSIX):
$ seq 1 100 | sed '1,10d'
11
12
13
14
...
100
答案 2 :(得分:0)
python -c "import sys;sys.stdout.write(''.join(line for i, line in enumerate(open('yourfile')) if i%10 == 0 ))" >newfile
它更长,但它是一种语言 - 对于每个人试图做的事情都没有不同的语法和参数。
答案 3 :(得分:0)
使用非GNU sed
,打印每10行使用
sed '10,${p;n;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'
)