Replacing all occurrences of non-printable character in a file using its ascii value

3.5k views Asked by At

I have a file myFile.xmlwhich I want to run the xmllintcommand on for proper formatting.

It contains the ASCII character 26 (substitute char) because of which xmllint command is failing with parser error.

How can I replace all occurrences of this character with blank in this file?

2

There are 2 answers

3
Vicky On BEST ANSWER

The following worked:

tr -cd '\11\12\15\40-\176' < file-with-binary-chars > clean-file

referred from here:

ascii-control-characters

0
Alfe On

If you are using bash, how about this:

sed $'s/\x1a//g' < FILENAME | xmllint

This uses the special bash notation $'...' which tells the bash to evaluate backslash sequences like the \x1a properly.