在HP-UX

时间:2016-01-27 07:18:07

标签: regex bash shell awk sed

根据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,因为我没有权限这样做。

1 个答案:

答案 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/'