Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

improve hexdump output

by daxim (Chaplain)
on Feb 28, 2013 at 15:53 UTC ( #1021070=CUFP: print w/ replies, xml ) Need Help??

hexdump only shows ASCII characters in the visualisation column, and substitutes everything else with a period. That's lame, but nothing that the following filter from my ~/.bashrc couldn't fix:
# Turn   1220  4c 29 e5 41 89 ff 49 89  f6 48 c1 fd 03 49 89 d5  L).A..I. .H...I..
# into   1220  4c 29 e5 41 89 ff 49 89  f6 48 c1 fd 03 49 89 d5  L)A�I�H␃I�
# requires http://catb.org/~esr/hexdump/
hex () {
    hexdump $@ | perl -C -ne'
        $_ = substr $_, 0, 56;  # without right-hand side columns
        print $_;
        @F = split;             # split on space
        shift @F;               # drop address column
        for (@F) {
            $h = hex;
            if ($h < 32) {
                print chr($h+0x2400);   # control character symbols
            } elsif (127 == $h) {
                print chr 0x2421;       # delete symbol
            } elsif (0x80 <= $h and $h <= 0x9f) {
                print chr 0xFFFD;       # undefined in iso-latin-1
            } elsif (0xa0 == $h) {
                print chr 0x2420;       # non-breaking space as space symbol
            } else {
                print chr $h;           # just the character as is
            };
        };
        print qq(\n);
    '
}

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: CUFP [id://1021070]
Approved by moritz
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2016-06-25 09:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My preferred method of making French fries (chips) is in a ...











    Results (323 votes). Check out past polls.