2014-01-11 4 views
-1

Может ли кто-нибудь сказать мне команду в Linux заменить следующим?Найти и заменить тексты в Linux

ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/new %i" 
PIDFile=/home/new/.new/%H %i.pid 

с

ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i" 
PIDFile=/home/NUSER/.new/%H %i.pid 

Я немного запутался с СЭД, как я не знаю, как вставить разрыв строки во время замены.

ответ

0

Это может работать для вас (GNU СЭД):

sed -r '$!N;s/^(ExecStart=.*)new(.*\nPIDFile=.*\/)new(.*)/\1vnserver\2NUSER\3/;P;D' file 

Держите две строки в области шаблона, и когда требуемые линии встречаются, замените две строки.

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