如果我在 bash 中运行这段代码:
echo dog dog dos | sed -r 's:dog:log:'
它提供输出:
log dog dos
我怎样才能使它取代所有发生的狗?
你必须把 g放在末尾,它代表“全球”:
g
echo dog dog dos | sed -r 's:dog:log:g' ^
您应该添加 g修饰符,以便 sed 对模式缓冲区的内容执行 全球性的替换:
echo dog dog dos | sed -e 's:dog:log:g'
有关 sed 的精彩文档,请检查 http://www.grymoire.com/Unix/Sed.html
GNU sed的官方文档可在 http://www.gnu.org/software/sed/manual/上获得
GNU sed