0

当我使用正常值时a=10

我能够让 sed 查找/替换工作

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

但是当我尝试使用像这样的变量时a=http://xyz.com

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

我认为它抛出未知选项错误是由于变量上存在转义字符

4

2 回答 2

4

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

$ a="http://xyz.com"
$ echo "<xxx>" | awk -v a="$a" '{gsub(/xxx/,a)}1
<http://xyz.com>
于 2013-03-25T13:53:37.500 回答
4

尝试这个:

sed -e "s@xxx@$a@g" a.txt 
于 2013-03-25T12:23:46.497 回答