如何用unix命令输出文件的第800-900行?
我想输出文件中 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这将打印 (
p
) 第 800 行到第 900 行,包括第 800 行和第 900 行(即总共 101 行)。它不会打印任何其他行 (-n
)。从 800 调整到 801 和/或 900 到 899,使其完全符合您认为“800 到 900 之间”在您的情况下的含义。
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.
找到了一种更漂亮的方法:使用 sed,仅打印 a 和 b 之间的行:
来自博客文章: 使用 sed 提取文本文件中的行
我使用它的一种方法是查找(和比较)文件的相似部分:
这将给我一个文件中相似部分的并排比较:)
Found a prettier way: Using sed, to print out only lines between a and b:
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:
Which will give me a nice side-by-side comparison of similar sections of a file :)