根据sed whole word search and replace我尝试了以下内容。
操作系统:HP-UX B.11.31 U ia64
$ echo "bar bar2 embarassment" | sed "s/\<bar\>/test/g"
bar bar2 embarassment
$ echo "bar bar2 embarassment" | sed "s/\b[bar]\b/test/g"
bar bar2 embarassment
$ echo "bar bar2 embarassment" | sed "s/\[[:<:]]bar[[:<:]]\/test/g"
sed: Function s/\[[:<:]]bar[[:<:]]\/test/g cannot be parsed.
$ echo "bar bar2 embarassment" | sed "s/bar/test/g"
test test2 embraassment
以上都没有帮助我匹配确切的值。
注意:我无法安装GNU sed
,因为我没有权限这样做。
答案 0 :(得分:1)
最便携的方法:)
sed 's/^bar$/test/;s/ bar / test /g;s/^bar /test /;s/ bar$/ test/'
您还可以允许所有非字母字符:
sed 's/([^a-zA-Z0-9])bar([^a-zA-Z0-9])/\1test\2/g;s/^bar([^a-zA-Z0-9])/test\1/'