我需要在一个小的 bash 脚本中替换文件中的一个字符串,但是......我得到了奇怪的结果。
假设我要替换:
<tag><![CDATA[text]]></tag>
与:
<tag><![CDATA[replaced_text]]></tag>
我应该使用 sed
吗?我认为由于 /
和 [
]
我得到了奇怪的结果......
解决这个问题的最佳方法是什么?
最佳答案
带有 -p 选项的 Perl 几乎与 sed 一样工作,并且它的正则表达式有\Q(引号)开关:
perl -pe 's{\Q<tag><![CDATA[text]]></tag>}
{<tag><![CDATA[replaced_text]]></tag>}' YOUR_FILE
在 Perl 中,您可以使用不同的标点符号来分隔表达式(在我的示例中为 s{...}{...})。
关于linux - 从 bash 脚本替换文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10067828/