2015-08-30 10 views
1

Я (безуспешно) пытаюсь заменить запись хозяина базы данных в файле Magento local.xml (файл строки подключения).Sed regex change of file

Линия состоит в следующем:

<host><![CDATA[localhost]]></host> 

Я хочу, чтобы найти строку, которая содержит «хозяина» с СЭД, а затем заменить содержимое внутренних скобок с чем-то другим.

Примечание. Содержимое внутренних скобок не всегда будет «localhost», поэтому s/localhost/lala/g не будет работать.

я получил следующее:

sed -i "/\<host\>/s/.../lala/2" local.xml 

Помогите пожалуйста.

+1

'<' and '>' не являются специальные 'regex' символов, нет необходимости цитировать их. – axiac

ответ

4

С GNU СЭД:

sed 's|\(<host><!\[CDATA\[\).*\(\]\]></host>\)|\1lala\2|' file 

или

sed -E 's|(<host><!\[CDATA\[).*(\]\]></host>)|\1lala\2|' file 

Выход:

<host><![CDATA[lala]]></host> 
+0

Woah, спасибо большое. Переключился на «sed -i», и он отлично заменил их. Большое спасибо за урок и информацию. – Neekoy