我需要将所有出现的 替换
为0x02
using sed
。以下内容有效还是我必须使用\
?
sed -i -E "s/<>/<0x02>/g" $output_file
如果是,我该怎么做?
答案1
字符串中没有需要转义的特殊字符,以便在 中命令
的模式部分按字面解释该字符串。s///
sed
此外,替换字符串中没有0x02
需要特殊处理的特殊字符(如果您使用的是 GNU ,则&
替换字符串中的特殊字符将是特殊的\1
,\2
等等)。\n
\t
sed
这意味着你应该能够做
sed 's//0x02/g' inputfile >outputfile
唯一可能需要特别处理的是避免
在子字符串中出现替换,例如#
.由于我在问题中没有看到任何示例文档,因此我无法确切地说这是否会成为问题以及如何最好地防范它。
一般来说,不使用-i
选项 withsed
直到您sed
知道可以使用编辑表达式或脚本,以避免意外丢失数据。您也不需要-E
在这里,因为我们根本不处理扩展的正则表达式。
sed
如果您在名称保存在变量中的文件上运行命令,请记住双引号该变量的扩展(请参阅为什么我的 shell 脚本会因为空格或其他特殊字符而卡住?)。