Позвольте мне объяснить сценарий, с которым я столкнулся: у меня есть файл perl, который, между прочим, создает строку заголовка, используемую другим процессом. Это определено в сценарии Perl (script.pl) как:Как добавить символ символа новой строки при замене строки sed?
$str = "START\n" .
"PARAM1=blah\n" .
"PARAM2=blah2\n" .
"PARAM3=blah3\n";
и т.д.
мне нужно изменить значение $ Обл путем добавления нескольких значений из Баш скрипт, так что я думал, что я хотел бы использовать СЕПГ. Это то, что я до сих пор:
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";
Однако то, что мне нужно, это буквальный «\ п», чтобы выглядеть хорошо после того, как новые параметры я добавил:
$str = "START\n" .
"NEWPARAM1=blah\n" .
"NEWPARAM2=blah2\n" .
"PARAM1=blah\n" .
"PARAM2=blah2\n" .
"PARAM3=blah3\n";
Я попытался с помощью «\ п», \ п в СЭД заменить пункт, но не повезло. Любая помощь будет оценена
Какой язык это? Это не 'sh' или' bash'. –
Извините, забыл упомянуть, что я использую это внутри сценария bash –
Да, тогда я получаю $ str = "START \ n". "NEWPARAM1 = blah ". "NEWPARAM2 = blah2 ". и т. Д. В результате форматирование перепутано, то, что он делает, интерпретирует \\ n как новый символ новой строки, поэтому он добавляет новую строку после blah, а затем еще одну новую строку после '.' –