如何使用Unix命令输出文件中800-900行?

19

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

这个方法可以实现,但似乎过于复杂:

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

我在Unix方面的知识不足似乎成为了瓶颈。有什么建议吗?

2个回答

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

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

如果您希望它按照您的意思执行“在800和900之间”的操作,则需要将范围从800到801和/或从900到899进行调整。


太好了!谢谢!我在一篇博客文章中找到了完全相同的提示,还有更多的例子 - 请看我的回答。 - Jesper Rønn-Jensen

5

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

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

从博客文章中得知:使用sed提取文本文件中的行

我正在使用的一种方法是查找(和diff)文件的相似部分:

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

这将为我提供文件相似部分的美观并排比较 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接