从给定开始和结束行号的文件中获取一系列行

Sca*_*ark 19 unix shell

我需要从给定起始行号和结束行号的文件中提取一定数量的行.

我怎么能在unix下快速执行此操作(实际上是Solaris,因此gnu风格不可用).

谢谢

Alo*_*hal 45

要打印第6-10行:

sed -n '6,10p' file
Run Code Online (Sandbox Code Playgroud)

如果文件很大,并且结束行数与行数相比较小,则可以通过以下方式提高效率:

sed -n '10q;6,10p' file
Run Code Online (Sandbox Code Playgroud)

从测试具有相当多行的文件:

$ wc -l test.txt 
368048 test.txt
$ du -k test.txt 
24640    test.txt
$ time sed -n '10q;6,10p' test.txt >/dev/null
real   0m0.005s
user   0m0.001s
sys    0m0.003s
$ time sed -n '6,10p' test.txt >/dev/null
real   0m0.123s
user   0m0.092s
sys    0m0.030s
Run Code Online (Sandbox Code Playgroud)

  • Rah sed!桑达!桑达!桑达!+1 (3认同)