我有这个sed命令:
sed 's/old/new/g' file.txt
但它也替换了字符串'folder'中的旧内容。如果字符串左边或右边没有字符,我该如何替换字符串?
答案 0 :(得分:3)
如果不挑剔,在两边插入空白都适合你。
sed 's/ old / new /g' file.txt
答案 1 :(得分:2)
使用\b
:
's/\bold\b/new/g'
我经常坚持perl:
perl -pi -e 's/\bold\b/new/g' file.txt
答案 2 :(得分:1)
要与不支持PCRE字边界扩展的sed版本兼容,您需要自己模拟该扩展的效果:
sed -r 's@(^|[^[:alpha:]])old($|[^[:alpha:]])@\1new\2@g'
答案 3 :(得分:1)
这可能对您有用:
sed 's/\<old\>/new/g' file
很明显,如果你想要相反(使用GNU sed):
sed 's/\Bold\B/new/g' file