File 使用ascii值替换文件中所有出现的不可打印字符
我有一个文件File 使用ascii值替换文件中所有出现的不可打印字符,file,unix,replace,character,non-printing-characters,File,Unix,Replace,Character,Non Printing Characters,我有一个文件myFile.xml 我想在上运行xmllint命令以获得正确的格式设置 它包含ASCII字符26(替换字符),因为xmllint命令因解析器错误而失败 如何将此文件中出现的所有字符替换为空字符?如果您使用的是bash,如何: sed $'s/\x1a//g' < FILENAME | xmllint sed$'s/\x1a//g'
myFile.xml
我想在上运行xmllint
命令以获得正确的格式设置
它包含ASCII字符26(替换字符),因为xmllint
命令因解析器错误而失败
如何将此文件中出现的所有字符替换为空字符?如果您使用的是
bash
,如何:
sed $'s/\x1a//g' < FILENAME | xmllint
sed$'s/\x1a//g'
这使用了特殊的bash
符号$'…'
,它告诉bash
正确地计算像\x1a
这样的反斜杠序列 以下措施奏效了:
tr -cd '\11\12\15\40-\176' < file-with-binary-chars > clean-file
tr-cd'\11\12\15\40-\176'clean file
从这里提到:
您可能应该在回答中添加以下内容:该命令不仅替换ASCII字符26(十进制),而且还替换集合
'\11\12\15\40-\176'
(八进制)中的所有字符。实际上,它不会删除字符26,因为这将是八进制表示法中的\32
。但是路是畅通的。@Alfe确实如此。-c
表示补码,-d
表示删除。当然,这里没有26
字符,只有ASCII值。