到目前为止我有这个:
sed -n '0,10p' yourfile > newfile
但它不起作用,只输出一个空白文件:(
你的问题是模棱两可的,所以这是我能想到的每一个排列:
head -n10 yourfile > newfile
tail -n+10 yourfile > newfile
awk '!(NR%10)' yourfile > newfile
awk 'NR%10' yourfile > newfile
(既然一个模棱两可的问题只能有一个模棱两可的答案......)
打印每十行(GNU 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
使用非 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'
:)
python -c "import sys;sys.stdout.write(''.join(line for i, line in enumerate(open('yourfile')) if i%10 == 0 ))" >newfile
它更长,但它是一种单一的语言——人们尝试做的每一件事都没有不同的语法和参数。