讓我來解釋一下我面臨的場景:我有一個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後面添加一個換行符,然後在'。'後面添加另一個換行符。 –