如何使用sed或awk命令查找和替换带有变量的文本(变量保存Unix脚本)

时间:2018-02-26 07:55:11

标签: bash shell unix awk sed

目标:我想用包含unix代码的文件内容替换字符串。

我要做的是:

首先:我将文件内容存储到变量

variable=`cat sample.sh`
variable2="$(sed -z 's:\n:\\\n:g;$s:\\\n$::'<<<"$variable")" 

然后在sed命令中使用该变量来替换具有变量值的文本。

sed -i "s:SearchString:$variable2//&/\\\&}:g"<<<"SearchString"  File.html

sed命令抛出错误说明

  

sed:-e expression#,char 5:s'

的未知选项

请帮助实现我的目标。

1 个答案:

答案 0 :(得分:0)

问题可能是你在$ variable2中有一个冒号,那就是终止替换值。是否有一个你知道的角色在$ variable2中?例如,&#34;管道&#34;字符&#34; |&#34; - 如果有的话,在这里使用该角色而不是&#34;:&#34;分开&#34; s&#34;命令。

我认为这是一个错字,但你错过了#34; $ {variable2&#34;在sed命令中。

还有其他方法可以解决您的问题,但这是最小的变化。