歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

hexdump使用小技巧

開發時經常會需查看非文本文件內容,最常見的16進制查看器就是hexdump。hexdump 看似簡單,但還是有些小技巧的。

以文本文件tmpfile為例:

點擊(此處)折疊或打開

    Happy New Year!Happy New Year!
    Happy New Year! 1) 最簡單的方式
    hexdump testfile

    0000000 6148 7070 2079 654e 2077 6559 7261 0a21
    *
    0000030
    這種方式是以兩個字節為一組,其順序取決於本機字節序。比如在x86架構上就是以blittle-endian方式顯示,看起來會很費勁。
    如第一行翻譯成ascii碼:
    6148 7070 2079 654e 2077 6559 7261 0a21
    aH pp y Ne w e ae !r

    為了避免這種情況,就要用到下面的”以字節方式查看“

    2) 以字節方式查看
    hexdump -C testfile -s skip -n number

    00000000 48 61 70 70 79 20 4e 65 77 20 59 65 61 72 21 0a |Happy New Year!.|
    *
    00000030
    這種方式就不會有字節序問題了,而且還能同時顯示16進制與ascii碼,但存在的問題是,如果某幾行的內容相同,會省略掉後幾行,這個有時也會造成麻煩。如何避免省略呢?

    3) 不要省略
    hexdump -v testfile

    0000000 6148 7070 2079 654e 2077 6559 7261 0a21
    0000010 6148 7070 2079 654e 2077 6559 7261 0a21
    0000020 6148 7070 2079 654e 2077 6559 7261 0a21
    0000030
    現在省略是沒有了,但又回到了兩字節顯示的老路上,所以我們要把兩種方式結合起來。

    4) 字節方式顯示且不要省略
    hexdump -Cv testfile

    00000000 48 61 70 70 79 20 4e 65 77 20 59 65 61 72 21 0a |Happy New Year!.|
    00000010 48 61 70 70 79 20 4e 65 77 20 59 65 61 72 21 0a |Happy New Year!.|
    00000020 48 61 70 70 79 20 4e 65 77 20 59 65 61 72 21 0a |Happy New Year!.|
    00000030
    現在就好看多了,既是以單字節方式顯示,又不會省略了。但有時文件很大,我們只想查看其中一段,怎麼把呢?

    5) 顯示某一段
    hexdump -Cv testfile -s skip -n number

    fireaxe $ hexdump -Cv tmp.txt -n 1
    00000000 48 |H|
    00000001

    fireaxe $ hexdump -Cv tmp.txt -n 2
    00000000 48 61 |Ha|
    00000002

    fireaxe $ hexdump -Cv tmp.txt -n 3
    00000000 48 61 70 |Hap|
    00000003 fireaxe $ hexdump -Cv tmp.txt -s 1 -n 1
    00000001 61 |a|
    00000002
    fireaxe $ hexdump -Cv tmp.txt -s 2 -n 1
    00000002 70 |p|
    00000003
    fireaxe $ hexdump-Cv tmp.txt -s 3 -n 1
    00000003 70 |p|
    00000004
    OK, 整個顯示過程都可以自由控制了~~
Copyright © Linux教程網 All Rights Reserved