Shell:获取文件的第x行到第y行

时间:2013-06-05 07:51:58

标签: shell unix

我可以使用什么unix shell命令从文件中获取行x(例如10)到y(例如,到15)。 grep似乎没有帮助,除了做一个for循环,我想不出别的什么。

5 个答案:

答案 0 :(得分:22)

您可以使用sed

sed -n '5,10p' filename

打印5到10行。

答案 1 :(得分:7)

头y,尾y-x

head -n 15 filename | tail -n 5

答案 2 :(得分:4)

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
>

答案 3 :(得分:3)

您可以使用headtail,例如

head -n 15 $file | tail -n 5

答案 4 :(得分:3)

对于更大的文件:

sed '10,15! d;15q' file