Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
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);
    '
}

Comment on improve hexdump output

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 pondering the Monastery: (5)
As of 2014-10-23 06:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (124 votes), past polls