2013-12-05 3 views

ответ

1

Вручную создайте список разделителей, который вы хотите вместо \b, \W или \<. - не является частью символов слова (alphanumericals), поэтому это также соответствует вашей другой строке. Поэтому попробуйте что-то вроде этого, расширяя список по мере необходимости: [-a-zA-Z0-9].

1

Требовать пробел или символ конца строки:

sed 's/Europe12\([ ]|$\)/Europe12_yesturday\1/g' input 
0

Вы можете сделать это в 2 раза:

sed -e 's/Europe12/Europe12_yesturday/g' -e 's/Europe12_yesturday-36/Europe12-36/g' file.txt 
0
sed 's/\(Europe12[[:blank:]]\)/\1_yesturday/g;s/Europe12$/&_yesturday/' YourFile 

[[: пусто:]] может быть completeted с любым граница, которую вы принимаете, также нравится.,;: /]) и т. д. (будьте в курсе значения регулярного выражения этого символа в этом случае)

0

Немного поздно ответить ..Это может быть легко достигнуто "граница слова" нотации (\ < .. \ >)

sed -i 's/\<$basename\>/${basename}_yesterday/g' file.txt 
Смежные вопросы