如何防止 ed 打印匹配结果?

How can I prevent ed printing match results?

我在 bash 脚本中使用 ed 来搜索文件; / 命令将显示我不想要的内容。我尝试重定向 >/dev/null 2>&1,但这对我不起作用。

文本文件 foo.txt:

a
b
c

bash 脚本 bar.sh:

ed -s foo.txt << EOF
/b/
EOF
> /dev/null 2>&1

结果:

$ ./bar.sh
b

如何停止 ed 打印匹配的行 b

我想你是这个意思:

ed -s foo.txt > /dev/null <<eof
/b/
eof

您可以使用 ed 注释命令 /b/;# 移动到匹配的行而不打印结果。

根据 ed 文档

'(.,.)#'

Begins a comment; the rest of the line, up to a newline, is ignored. If a line address followed by a semicolon is given, then the current address is set to that address. Otherwise, the current address is unchanged.