2015-05-13 2 views
0

У меня есть текстовый файл с именем sample.txt, который содержитRegex заменить строку со специальными символами в оболочке

name="sam:18" 

Я хочу, чтобы это было заменено с именем, заданным в конфигурационном файле, который называется Name.config который имеет

name="robin:19" 

Вот мой сценарий, который называется nameReplace.sh:

#!/bin/bash 
source name.config 
sed -i -e 's/name=[A-Za-z0-9]*/name=${name}/g' sample.txt 

Этот адрес xecutes, но не дает никаких изменений в sample.txt.

Я хочу следующий вывод в sample.txt:

name="robin:19" 

Пожалуйста, любая помощь Спасибо

ответ

1

Ваше регулярное выражение:

name=[A-Za-z0-9]* 

не будет соответствовать:

name="sam:18" 

Измените свое sed чтобы:

sed -i.bak "s/name=.*/name=\"${name}\"/" sample.txt 

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

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