我可以使用什么 unix shell 命令从文件中获取行 x(例如 10)到 y(例如到 15)。grep
似乎没有帮助,除了做一个 for 循环我想不出别的。
问问题
14865 次
5 回答
31
您可以使用sed
:
sed -n '5,10p' filename
打印从 5 到 10 的行。
于 2013-06-05T07:54:44.550 回答
8
头部 y,尾部 yx
head -n 15 filename | tail -n 5
于 2013-06-05T07:56:21.620 回答
5
awk:
awk 'NR>=10 and NR<=15' your_file
perl:
perl -lne 'print if($.>=10 && $.<=15)' your_file
测试如下:
> cat temp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
> nawk 'NR>=10&&NR<=15' temp
10
11
12
13
14
15
> perl -lne 'print if($.>=10&&$.<=15)' temp
10
11
12
13
14
15
>
于 2013-06-05T08:02:53.090 回答
3
对于更大的文件:
sed '10,15! d;15q' file
于 2013-06-05T08:48:21.077 回答
3
您可以使用head
and tail
,例如
head -n 15 $file | tail -n 5
于 2013-06-05T07:54:55.130 回答