Sed递归替换

w00*_*00d 11 regex sed

echo ddayaynightday | sed 's/day//g'

它结束了 daynight

无论如何都要让它替代直到不再匹配?

tor*_*rek 20

我喜欢的形式,对于这种情况:

echo ddayaynightday | sed -e ':loop' -e 's/day//g' -e 't loop'
Run Code Online (Sandbox Code Playgroud)

这和其他人一样,除了它使用多个-e命令来制作三行并使用t构造 - 这意味着"如果你做了一个成功的替换就分支" - 迭代.


pot*_*ong 5

这可能对你有用:

echo ddayaynightday | sed ':a;s/day//g;ta'
night
Run Code Online (Sandbox Code Playgroud)