使用sed在一个巨大的文件中用特殊字符替换字符串

时间:2012-03-29 07:12:18

标签: string bash sed special-characters

我陷入了这个非常容易的问题(我希望它适合你)。 我需要在一个巨大的文件中用特殊字符替换几个字符串。 我正在尝试使用sed和bash,因为我是linux用户,但到目前为止我只使用sed作为“标准”字符串。

这些是我试图操纵的字符串

(alpha[1],alpha[2])diff(A45(i,j),alpha[1])

和替换字符串将是

(i,j)dzA45(i,j)

我试过了sed -i 's/(alpha[1],alpha[2])/(i,j)/g' $filetoworksed -i 's/\(alpha\[1\],alpha\[2\]\)/i,j/g' $filetowork没有任何成功

第二种选择似乎适用于第一种字符串,但它不适用于第二种选择,为什么?

你能帮帮我吗?不幸的是,我在没有任何帮助的情况下浏览了stackoverflow旧问题:(

1 个答案:

答案 0 :(得分:3)

我刚试过命令行,但是

echo "(alpha[1],alpha[2])" | sed 's/(alpha\[1\],alpha\[2\])/(i,j)/

为第一个案件工作。请注意,您不应该逃避(),因为这是您激活群组的方式。

第二个

echo "diff(A45(i,j),alpha[1])" | sed 's/diff(A45(i,j),alpha\[1\])/dzA45(i,j)/'

为我工作。同样的情况,不要逃避括号!