如何使用unix命令输出文件的800-900行?

时间:2009-10-21 09:07:45

标签: command-line tail head

我想输出文件中a和b之间的所有行。

这可行,但似乎有点矫枉过正:

head -n 900 file.txt | tail -n 100

我缺乏unix知识似乎是这里的限制。有什么建议吗?

2 个答案:

答案 0 :(得分:17)

sed -n '800,900p' file.txt

这将打印(p)行800到900,包括行800和900(即总共101行)。它不会打印任何其他行(-n)。

从800调整到801和/或900到899,使其完全符合您的想法,“800到900之间”应该是您的意思。

答案 1 :(得分:5)

找到一个更漂亮的方法:使用sed,只打印a和b之间的行:

sed -n -e 800,900p filename.txt

来自博文:Using sed to extract lines in a text file

我使用它的一种方法是找到(和差异)文件的类似部分:

 sed -n -e 705,830p mnetframe.css > tmp1; \
 sed -n -e 830,955p mnetframe.css > tmp2; \
 diff --side-by-side tmp1 tmp2

这将给我一个很好的并排比较文件的类似部分:)