Odd need: to track down NUL bytes

Nils Kassube kassube at gmx.net
Sun Feb 5 19:35:57 UTC 2017


Kevin O'Gorman wrote:
> I now discover that some files that were under construction at that
> time are corrupted with extensive NUL bytes.  These are usually text
> files.  I want to find all such files and "cleanse" them to recover
> what information I can.  With just about anything _except_ a NUL byte
> this would be easy, but due to the special treatment of NUL in
> strings, it's not that clear to me how best to even search for those
> bytes.

Well, I also don't know how to search for those files, but you could at 
least remove the NUL bytes with something like this:

cat infile | tr -d '\0' >outfile

Or perhaps you prefer to replace the NUL bytes with something else, like 
space - that would be like this:

cat infile | tr '\0' ' ' >outfile

Now, you could just do this operation for all files, regardles if they 
contain NUL bytes:

for f in *;do test -f "$f" && cat "$f" | tr '\0' ' ' >"outdir/$f";done

This would place a copy of each file in the existing folder "outdir" 
with the NUL bytes replaced by spaces (if there are any).


Nils




More information about the ubuntu-users mailing list