在Linux中查找和替换文本

时间:2014-01-11 09:54:31

标签: sed

有人可以告诉我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

我对sed有点困惑,因为我不知道如何在替换时插入换行符。

2 个答案:

答案 0 :(得分:0)

sed -i -r 's@/bin/new@/bin/vncserver@; s@/home/new@/home/NUSER@' file

答案 1 :(得分:0)

这可能适合你(GNU sed):

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

在模式空间中保留两行,当遇到所需的行时,替换两个字符串。