我有这个 sed 命令:
sed 's/old/new/g' file.txt
但它也替换了字符串“文件夹”中的旧版本。如果左侧或右侧没有字符,我该如何替换字符串?
如果不挑剔,在两侧插入空白将适合您。
sed 's/ old / new /g' file.txt
使用\b
:
's/\bold\b/new/g'
我通常坚持使用 perl:
perl -pi -e 's/\bold\b/new/g' file.txt
这可能对您有用:
sed 's/\<old\>/new/g' file
顺便说一句,如果你想要相反的(使用 GNU sed):
sed 's/\Bold\B/new/g' file
为了与不支持 PCRE 字边界扩展的 sed 版本兼容,您需要自己模拟该扩展的效果:
sed -r 's@(^|[^[:alpha:]])old($|[^[:alpha:]])@\1new\2@g'