使用 sed 将整个文件中的“ ”替换为“0x02”

使用 sed 将整个文件中的“ ”替换为“0x02”

我需要将所有出现的 替换&#x20x02using sed。以下内容有效还是我必须使用\

sed -i -E "s/<&#x2>/<0x02>/g" $output_file

如果是,我该怎么做?

答案1

字符串中没有需要转义的特殊字符,以便在 中命令&#x2的模式部分按字面解释该字符串。s///sed

此外,替换字符串中没有0x02需要特殊处理的特殊字符(如果您使用的是 GNU ,则&替换字符串中的特殊字符将是特殊的\1\2等等)。\n\tsed

这意味着你应该能够做

sed 's/&#x2/0x02/g' inputfile >outputfile

唯一可能需要特别处理的是避免&#x2在子字符串中出现替换,例如&#x23.由于我在问题中没有看到任何示例文档,因此我无法确切地说这是否会成为问题以及如何最好地防范它。

一般来说,使用-i选项 withsed直到您sed知道可以使用编辑表达式或脚本,以避免意外丢失数据。您也不需要-E在这里,因为我们根本不处理扩展的正则表达式。

sed如果您在名称保存在变量中的文件上运行命令,请记住双引号该变量的扩展(请参阅为什么我的 shell 脚本会因为空格或其他特殊字符而卡住?)。

相关内容