hexdump如何按照單位元組格式輸出

闹闹爸爸發表於2024-04-02

要讓hexdump命令按照單位元組(每行顯示多個單位元組)的格式輸出資料,你可以使用`-e`選項跟一個格式字串來指定輸出格式。hexdump的預設輸出是每個地址偏移處開始的16個位元組,並且是按雙位元組(16 bits)分組的。如果你想改為每個地址偏移顯示一個位元組,可以使用以下命令:

hexdump -e '1/1 "%02x "' yourfile

這裡的意思是:

  • `1/1` 指定每個格式應用於一個輸入位元組。
  • `"%02x "` 定義瞭如何顯示這個位元組,`%02x` 表示以兩位十六進位制數形式顯示位元組(不足兩位前面補0),後面的空格是各個位元組輸出之間的分隔。

示例

比如,你有一個檔案example.txt,裡面的內容是簡短的文字,執行以下命令:

hexdump -e '1/1 "%02x "' example.txt

將會得到這樣的輸出(輸出會根據你的檔案內容而有所不同):

68 65 6c 6c 6f 20 77 6f 72 6c 64 0a

如果你想在每行顯示8個位元組,可以使用迴圈(`-e`後面的第一個字串為迴圈格式,後面接迴圈次數),比如:

hexdump -e '8/1 "%02x " "\n"' yourfile

這將使得每行顯示8個以兩位十六進位制數表示的位元組,每8個位元組後跟一個換行符。

記住,hexdump的靈活性在於它允許你自定義輸出格式來滿足你的特定需要,透過修改上述命令中的引數,你可以調整輸出以更好地適應你的使用場景。

相關文章