2013-06-10 2 views
1

У меня есть специальный символ «&» в строке, как можно использовать sed? Пространство перед символом & - проблема.Использовать sed со специальным символом внутри строки

word="Word" 
str="Word: One \\& Three" 
echo "$str" | sed -e 's/'$word'.*/'$str'/g' 
+2

использовать '' $ word'' вместо '' $ word'' и то же самое для '$ str'..и я не думаю, что вам нужно заключить целую команду' sed' в '' ... .'' – Bill

ответ

2

Если вы используете одиночные кавычки ', оболочка не будет иметь возможность расширить переменные, как это будет рассматриваться в буквальном смысле.

Вы можете интерполировать переменные, выполнив:

- двойные кавычки:

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

sed -e "s/$word.*/$str/g" 

- Одинарные кавычки:

Если у вас есть много специальных символов, используйте одинарные кавычки для шаблона и двойные кавычки переменных.

sed -e 's/'"$word"'.*/'"$str"'/g' 
Смежные вопросы