我陷入了这个非常容易的问题(我希望它适合你)。 我需要在一个巨大的文件中用特殊字符替换几个字符串。 我正在尝试使用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' $filetowork
和
sed -i 's/\(alpha\[1\],alpha\[2\]\)/i,j/g' $filetowork
没有任何成功
第二种选择似乎适用于第一种字符串,但它不适用于第二种选择,为什么?
你能帮帮我吗?不幸的是,我在没有任何帮助的情况下浏览了stackoverflow旧问题:(答案 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)/'
为我工作。同样的情况,不要逃避括号!