用bash中的sed替换特殊符号

时间:2015-05-10 20:04:02

标签: bash sed

我有一个文本文件,有一部分我想用另一个替换。问题是新部件包含text123之类的特殊标志,我无法使用sed执行此操作。

我想要做的是将{text123=./bla}更改为sed

我尝试使用sed -i -e 's/Location/Location\n\n\/\/One_File\nPart Second File '"{ d =.\/source; }"'\nThird File '"{ d =.\/source; }"'/' $file 命令执行此操作,但看起来有一些问题。可以帮助我吗?

看起来我找到了解决方案,但不幸的是还有另一个问题。我想使用echo:

将下面的所有行(带有所有特殊符号)放入文本文件中
Location
\\One file
Part Second File { d =.\/source; }
Part Third File { d =.\/source; }

所以,一旦我运行脚本,它将带我这样的东西:

{{1}}

任何人都可以帮助我吗?似乎这里有太多特殊标志,但我需要它们。

2 个答案:

答案 0 :(得分:1)

echo text123 | sed 's/text123/{text123=.\/bla}/g'

结果:

{text123=./bla}

答案 1 :(得分:0)

使用sed的反向引用:

echo text123 | sed 's/\(text123\)/{\1=.\/bla}/g'
{text123=./bla}