sed 可以删除包含“foo”的每一行吗?

sed 可以删除包含“foo”的每一行吗?

我在某处读到过:

sed -n -e '/foo/d' myinputfile.txt

将从 myinputfile.txt 中删除所有出现的“foo”。

但是这似乎对我不起作用。我是 sed 菜鸟,似乎无法解决这个问题。我基本上是尝试运行一个 bash 脚本,该脚本在每一行上调用 sed 来从输入文件中删除一个单词,但运行它时什么也没发生。

谢谢 :)

答案1

您读错了。

但是,虽然 sed 表达式本身是正确的,但标志却不正确。sed 通常会在处理每一行时将其输出到 stdout,但-n会抑制这一点。最终结果是没有输出任何行。-n如果想要正确的输出,必须删除。然后,您可以将其重定向到另一个文件,然后将该文件移动到位。

相关内容