2015-12-17 3 views
0

У меня есть файл tmp со следующим содержанием.Вставить строку в файл с sed

<port>1554</port><tt>file</tt> 

Я хочу, чтобы вставить строку с sed командой. Я использую эту команду

sed -i '/<port>/a "HELLO"' tmp 

но строка "HELLO" не вставлена ​​после <port> тега. Что случилось с командой sed?

желаемый результат:

<port>1554</port>HELLO<tt>file</tt> 
+2

так, что это желаемый результат? – fedorqui

+1

Как насчет 'sed -i 's/()/\ 1HELLO /' tmp'? –

+0

Я использую систему OpenWRT –

ответ

2

Это замена на самом деле, но это делает работу:

sed -i 's/<\/port>/<\/port>HELLO/g' 

или

sed -i 's#</port>#</port>HELLO#g' 
+0

, чтобы предотвратить сбой всех косых черт, вы можете использовать другой разделитель: 'sed 's # # blabla # g''. – fedorqui

+0

Это работы спасибо –

+1

@fedorqui, спасибо! Я не знал эту особенность sed. Я уверен, что это спасет меня в будущем. –

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