如何在“sed”实用程序的参数文本中同时在单引号和双引号下插入换行符?

bd1hkmkf  于 2022-09-21  发布在  Unix
关注(0)|答案(0)|浏览(137)

我想使用sed在文件中的目标行上方插入多行。

下面的file.txt包含一行“target line”。我最初的版本使用的是单引号:

sed '/target line/ i
     inserted line1;
     inserted line2;
     inserted line3;' file.txt

结果是:

inserted line1;
    inserted line2;
    inserted line3;
target line

此版本的工作方式与预期一样,即每行末尾的换行符由\转义为文字换行符,而不是命令终止符。请参阅here

然后我想在替换字符串中使用外壳变量,所以我尝试使用双引号来启用变量扩展:

sed "/target line/ i
     inserted line1;
     inserted line2;
     inserted line3;" file.txt

但这一次换行符和前四个空格消失了:

inserted line1;    inserted line2;    inserted line3;
target line

如何在此处正确地插入双引号中的换行符?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题