【问题标题】:Insert multiple lines Containing ' and $variable using sed not working使用 sed 插入包含 ' 和 $variable 的多行不起作用
【发布时间】:2020-03-12 05:29:58
【问题描述】:

我是脚本的新手,并且卡在一个可能非常简单的地方。如果有人能提供帮助,我仍然会很感激。

下面是我最简单的问题:

输入文件new.txt

你好团队

预期输出文件: 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 值。

【问题讨论】:

  • sed/Sed/SED 程序是通过写入sed 而不是Sed 来调用的。此外,请不要在代码中包含解释;例如, Sed command used : 可能是您问题的一部分,而不是任何文件。请相应地调整您的问题。

标签: shell sed solaris


【解决方案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

【讨论】:

    【解决方案2】:

    你也可以用反斜杠转义引号:

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

    【讨论】:

      猜你喜欢
      • 2018-02-01
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多