让我来解释一下我面临的场景:我有一个perl文件,它可以创建另一个进程使用的'header'字符串。这在perl脚本(script.pl)定义:如何在使用sed的字符串替换时添加字面换行符?
$str = "START\n" .
"PARAM1=blah\n" .
"PARAM2=blah2\n" .
"PARAM3=blah3\n";
等
我需要通过一个bash脚本追加更多的值修改为$ str中的值,所以我想我会用SED。这是我到目前为止有:
str_new="\"NEWPARAM1=blah\" .\n\"NEWPARAM2=blah2\" .\n";
sed -i "/START/{n;s/^/$str_new/}" script.pl
这种类型的作品,就是我得到的是:
$str = "START\n" .
"NEWPARAM1=blah" .
"NEWPARAM2=blah2" .
"PARAM1=blah\n" .
"PARAM2=blah2\n" .
"PARAM3=blah3\n";
不过,我需要的是字面“\ n”显示为好新的参数之后,我接着说:
$str = "START\n" .
"NEWPARAM1=blah\n" .
"NEWPARAM2=blah2\n" .
"PARAM1=blah\n" .
"PARAM2=blah2\n" .
"PARAM3=blah3\n";
我一直在使用“\ n”试过了,\ n的sed的替代条款,但没有运气。任何帮助,将不胜感激
这是什么语言?这不是'sh'或'bash'。 –
对不起,忘了提及我在bash脚本中使用这个 –
是的,我得到的是 $ str =“START \ n”。 “NEWPARAM1 = blah ”。 “NEWPARAM2 = blah2 ”。 等。因为格式化被搞砸了,它所做的是将\\ n解释为另一个换行符,所以它在blah后面添加一个换行符,然后在'。'后面添加另一个换行符。 –