使用sed命令获取文本文件的第x、第y和第z行

3

我知道你可以使用sed命令获取文本文件的第n行,如下所示:

sed -n '30p' foo.txt

将输出foo.txt文件的第30行。

然而,如果我想获取foo.txt文件的第30、39和43行,有没有办法在sed中进行串联呢?

谢谢。

1个回答

4
当然是可以的...
sed -n '30p;39p;43p' foo.txt

如果它们处于连续范围内,比如39-42,您可以这样做:
sed -n '39,42p' foo.txt

2
在某些版本的sed中,您可能需要执行sed -n -e '30p' -e '39p' -e '43p' ... - Ben Jackson
@Ben +1。我知道最初的sed版本不支持;,但除了遗留系统外,是否仍然存在需要使用-e的sed版本? - SiegeX
太棒了。感谢SiegeX和Ben Jackson。 - andrewj
我记得前几天在一个sed问题的评论中有人提到了OSX。 - Ben Jackson

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