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

发布于 2024-08-09 06:15:28 字数 148 浏览 9 评论 0原文

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

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

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

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

I want to output all lines between a and b in a file.

This works but seems like overkill:

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

My lack of unix knowledge seems to be the limit here. Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

痴情 2024-08-16 06:15:28
sed -n '800,900p' file.txt

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

从 800 调整到 801 和/或 900 到 899,使其完全符合您认为“800 到 900 之间”在您的情况下的含义。

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

This will print (p) lines 800 through 900, including both line 800 and 900 (i.e. 101 lines in total). It will not print any other lines (-n).

Adjust from 800 to 801 and/or 900 to 899 to make it do exactly what you think "between 800 and 900" should mean in your case.

喜你已久 2024-08-16 06:15:28

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

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

来自博客文章: 使用 sed 提取文本文件中的行

我使用它的一种方法是查找(和比较)文件的相似部分:

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

这将给我一个文件中相似部分的并排比较:)

Found a prettier way: Using sed, to print out only lines between a and b:

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

From the blog post: Using sed to extract lines in a text file

One way I am using it is to find (and diff) similar sections of files:

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

Which will give me a nice side-by-side comparison of similar sections of a file :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文