我想使用 sed/grep 替换文件中的字符串,但该字符串与另一个字符串混合在一起
例子:
sed -i 's/php/vinu/g' test.yml # to replace string php with vinu
测试.yml
php
phpehealth
dophp
testingphpin
在上面的 yml 文件中包含多个“php”字符串,但我只想用“vinu”替换“php”字符串,其余的不应该碰。
预期输出:
vinu
phpehealth
dophp
testingphpin
答案1
如果您的 sed 版本支持,请在正则表达式中使用单词边界,例如
sed -i 's/\<php\>/vinu/g'
答案2
单词边界的另一种方式:
sed -i 's/\bphp\b/vinu/g' file