sed поиск и замена всего слова - PullRequest
3 голосов
/ 19 августа 2011

Как заменить целые слова в строке sed поиск по всему слову и замена

с sed в HP-UX (B.11.31)?

$ echo "bar embarassment" | sed "s/bar/no bar/g";

"\bbar\b" does not work
"\<bar\>" does not work
"[[:<:]]bar[[:>:]]" does not work

Ответы [ 3 ]

1 голос
/ 19 августа 2011

Проверено на солярисе, а не на hpux

echo "bar embarassment bar foobar bar" | 
sed -e 's/\([^[:graph:]]\)bar$/\1no bar/g'  \
    -e 's/\([^[:graph:]]\)bar\([^[:graph:]]\)/\1no bar\2/g' \
    -e 's/^bar\([^[:graph:]]\)/no bar\1/g'

испускает

no bar embarassment no bar foobar no bar
1 голос
/ 19 августа 2011

Попробуйте -r вариант sed с \b:

echo "bar embarassment" | sed -r "s/\bbar\b/no bar/g";
0 голосов
/ 19 ноября 2016

если вы находитесь в vim, вы можете использовать эту команду:

:% s/\<old\>/new/g
...