使用 sed 命令将 Ç 等特殊字符替换为 \x01

使用 sed 命令将 Ç 等特殊字符替换为 \x01
sed "s/Ç//\x01 /g" filename

它取代它x01而不是\x01

答案1

您使用的 sed 版本是什么?因为,这件事在我这边运行得很干净。

备择方案:

tr '\200' '\001' < yourfile

perl -pe 's/\200/\x01/g' yourfile

SOH=`echo x | tr x '\001'`; sed -e "s/\200/${SOH}/g" yourfile

答案2

您发布的内容存在语法错误:它是一条Ç用空字符串替换的指令,并带有一些尾随垃圾。正则表达式和替换模式之间必须有一个斜杠。要替换Ç为文字字符串\x01,您需要sed "s/Ç/\\x01 /g" filename.反斜杠需要加倍,因为它是替换文本中的特殊字符。该答案的其余部分是关于替换Ç为十六进制代码为 的字符01

\x01通过十六进制代码指定字符的语法是可移植 sed 语法的扩展。它可以在 GNU sed(Linux 下的实现)中运行,但不能在 AIX 上运行。

您可以按字面意思在脚本中插入该字符,但在许多编辑器中键入起来很困难。您可以使用printf命令和八进制表示法以可移植的方式在脚本中生成字符。

`sed "s/Ç/$(printf '\001') /g" filename`

相关内容