我需要使用带有URL的SED替换字符串

时间:2013-03-25 12:18:43

标签: linux shell sed

当我使用像a=10

这样的正常值时

我能够获得sed find / replace working

  sed -e "s/xxx/$a/g" a.txt

但是当我尝试使用像a=http://xyz.com

这样的变量时

sed -e "s/xxx/$a/g" a.txt无效...

它抛出未知的选项错误,我假设是由于变量

上存在的转义字符

2 个答案:

答案 0 :(得分:4)

使用awk你的字符串可以包含任何字符,包括/,@,换行符,等等:

$ a="http://xyz.com"
$ echo "<xxx>" | awk -v a="$a" '{gsub(/xxx/,a)}1
<http://xyz.com>

答案 1 :(得分:2)

试试这个:

sed -e "s@xxx@$a@g" a.txt