Как найти значение замены с пробелами, используя sed в bash-скрипте - PullRequest
0 голосов
/ 05 июня 2011

У меня есть значения в файле, подобном этому 'значение для удаления' (без символов ').Я хочу использовать sed для запуска через файл и заменить значения , включая пробел до и после.Я запускаю это через скрипт bash.Как я могу это сделать?

Используемая в данный момент команда sed заменяет значения, но оставляет два пробела.

sed -i 's/ '$value' / /g' test.conf

В скрипте у меня есть

sed -i -e 's/\s'$DOMAIN'-'$SITE'\s/\s/g' gitosis.conf

повторяется как

sed -i -e s/\sffff.com-eeee\s/\s/g test.conf

Не работает, хотя.

Ответы [ 2 ]

1 голос
/ 05 июня 2011

ИМХО ваш sed не знает '\ s', поэтому используйте [ \t] и используйте двойные кавычки, иначе ваши переменные не расширятсянапример:

sed -i -e "s/[ \t]'$DOMAIN'-'$SITE'[ \t]/ /g" gitosis.conf
0 голосов
/ 05 июня 2011

Дайте мне знать, если это то, что вам нужно

echo 'Some values to remove value-to-remove and more' | sed -e 's/\svalue-to-remove\s/CHANGED/g'

вывод: Some values to removeCHANGEDand more

...