使用sed插入包含'和$ variable的多行

问题描述 投票:2回答:2

我不熟悉脚本编写,只能停留在一个可能非常简单的地方。如果有人可以提供帮助,仍将不胜感激。

以下是我最简单的问题:

输入文件new.txt

Hello team

期望输出文件: new_2.txt

  Select '/backup/path1_' from dual;
  Select '/backup/path2_' from dual;  
    Hello team 

注意: $ var1 = path1和$ var2 = path2

Sed command used : 
Sed '1i\
Select '/backup/"$var1"_' from dual;\
Select '/backup/"$var2"_' from dual;\
' new.txt > new_2.txt

收到的输出:

new_2.txt 
Select /backup/path1_ from dual;
Select /backup/path2_from dual;

Hello team 

还在各种引号组合之后,单引号'不会显示在输出中,也不会插入var值。

shell sed solaris
2个回答
1
投票

请您尝试以下操作:

var1=path1
var2=path2
sed "1i\\
Select '/backup/${var1}_' from dual;\\
Select '/backup/${var2}_' from dual;
" new.txt > new_2.txt

结果:

Select '/backup/path1_' from dual;
Select '/backup/path2_' from dual;
Hello team

0
投票

您还可以使用反斜杠将引号引起来:

sed '1i\
Select '\'/backup/"$var1"_\'' from dual;\
Select '\'/backup/"$var2"_\'' from dual;
' new.txt > new_2.txt
© www.soinside.com 2019 - 2024. All rights reserved.