我可以使用什么unix shell命令从文件中获取行x(例如10)到y(例如,到15)。 grep
似乎没有帮助,除了做一个for循环,我想不出别的什么。
答案 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)
您可以使用head
和tail
,例如
head -n 15 $file | tail -n 5
答案 4 :(得分:3)
对于更大的文件:
sed '10,15! d;15q' file