2013-03-25 1 views
0

Когда я использую обычное значение, как a=10Мне нужно заменить строку, используя SED с URL

Я могу получить SED поиска/замены работает

sed -e "s/xxx/$a/g" a.txt 

Но когда я пытаюсь использовать переменный, как a=http://xyz.com

sed -e "s/xxx/$a/g" a.txt не работают ...

Его метание неизвестной ошибки варианта, который я предполагаю, это из-за управляющие символы, которые присутствуют по переменной

ответ

4

С AWK ваша строка может содержать любые символы, включая /, @, символ новой строки, независимо от:

$ a="http://xyz.com" 
$ echo "<xxx>" | awk -v a="$a" '{gsub(/xxx/,a)}1 
<http://xyz.com> 
2

попробовать это:

sed -e "[email protected]@[email protected]" a.txt 
+0

Отлично !!! Это работает как шарм ... – user1386776

+0

... пока ваш URL-адрес не будет содержать символ «@» :-). –

+0

@EdMorton^_^ur правый !! ... гул. может быть 'sed -e 's> xxx> $ a> g" a.txt'? – Kent

Смежные вопросы