如果我在bash中运行此代码:
echo dog dog dos | sed -r 's:dog:log:'
Run Code Online (Sandbox Code Playgroud)
它给出了输出:
log dog dos
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它取代所有出现的狗?
Bru*_*eis 171
您应该添加g修饰符,以便sed执行模式缓冲区内容的全局替换:
echo dog dog dos | sed -e 's:dog:log:g'
Run Code Online (Sandbox Code Playgroud)
有关sed的精彩文档,请访问http://www.grymoire.com/Unix/Sed.html.这个全球标志在这里解释:http://www.grymoire.com/Unix/Sed.html#uh-6
官方文档GNU sed可在http://www.gnu.org/software/sed/manual/上找到.
ale*_*nis 23
你必须把g它放在最后,它代表"全球":
echo dog dog dos | sed -r 's:dog:log:g'
^
Run Code Online (Sandbox Code Playgroud)