有人可以告诉我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有点困惑,因为我不知道如何在替换时插入换行符。
答案 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
在模式空间中保留两行,当遇到所需的行时,替换两个字符串。