Hexdump - Linux命令 - UNIX命令

名稱

hexdump - ascii,十進制,十六進制,八進制轉儲

概要

[ - bcCdovx ] - 字符 [ - e format_string ] - 字符 [ - f format_file ] - 字符 [ - n 長度 ] - 字符 [ - s 跳過 ] 文件...

描述

hexdump實用程序是一種過濾器,它以用戶指定的格式顯示指定的文件或標準輸入(如果未指定文件)。

選項如下:

-b

單字節八進制顯示以十六進制顯示輸入偏移量,後跟十六個空格分隔的三列零填充輸入數據字節,每行八進制。

-C

單字節字符顯示以十六進制顯示輸入偏移量,後跟每行輸入數據的十六個空格分隔的三列空格填充字符。

-C

規範的十六進制+ ASCII顯示器以十六進制顯示輸入偏移量,後跟十六個空格分隔的兩列十六進製字節,後面跟著相同的十六個字節,以%_p格式包含在“`|”字符中。

-d

兩字節十進制顯示以十六進制顯示輸入偏移量,後跟八個空格分隔的,五列,零填充的雙字節輸入數據單位,每行為無符號十進制數。

-e format_string

指定用於顯示數據的格式字符串。

-f format_file

指定一個包含一個或多個換行分隔格式字符串的文件。 第一個非空白字符為散列標記的空行和行( 被忽略。

-n 長度

只解釋輸入的長度字節。

-o

雙字節八進制顯示以十六進制顯示輸入偏移,然後以八進制顯示每行八個空格分隔的六列零填充兩字節輸入數據。

-s 偏移

從輸入的開頭跳過偏移字節。 默認情況下, 偏移量被解釋為一個十進制數。 使用前導的0x0X 偏移量將被解釋為十六進制數字,否則,前導0 偏移量將被解釋為八進制數字。 將字符bkm附加到偏移量會使其被解釋為512 10241048576的倍數。

-v

-v選項使hexdump顯示所有輸入數據。 如果沒有-v選項,任何數量的輸出線組將與前一組輸出線相同(輸入偏移除外),這些輸出線組由單個星號組成。

-X

雙字節十六進制顯示以十六進制形式顯示輸入偏移量,然後以十六進制顯示每行八個空格分隔的四列零填充兩字節輸入數據。

對於每個輸入文件,按順序將輸入複製到標準輸出,按照-e-f選項指定的格式字符串按照指定的順序轉換數據。

格式

格式字符串包含任意數量的格式單位,用空格分隔。 格式單元最多包含三個項目:迭代計數,字節計數和格式。

迭代計數是可選的正整數,默認為1。 每種格式都應用迭代計數次數。

字節數是可選的正整數。 如果指定它,則定義格式的每次迭代要解釋的字節數。

如果指定了迭代計數和/或字節計數,則必須在迭代計數之後和/或字節計數之前放置單斜杠以消除它們的歧義。

斜杠之前或之後的任何空格都將被忽略。

該格式是必需的,並且必須用雙引號(“”)標記包圍。 它被解釋為fprintf樣式的格式字符串(請參閱fprintf(3)),但以下情況除外:

Hexdump還支持以下附加轉換字符串:

_a [ dox ]

顯示下一個要顯示的字節的輸入文件的累積輸入偏移量。 附加字符d ox分別指定顯示基數為十進制,八進製或十六進制。

_A [ dox ]

_a轉換字符串相同,只是在處理完所有輸入數據後才執行一次。

_C

輸出默認字符集中的字符。 非打印字符以三個字符顯示,零填充八進制數字,除了可以用標準轉義符號表示的那些字符(見上面),它們顯示為兩個字符串。

_p

輸出默認字符集中的字符。 非打印字符顯示為一個`` ''

_u

輸出美國ASCII字符,但使用以下小寫名稱顯示控製字符除外。 大於0xff的字符(十六進制)將顯示為十六進製字符串。

000 nul 001 soh 002 stx 003 etx 004 eot 005 enq

006 ack 007 bel 008 bs 009 ht 00A lf 00B vt

00C ff 00D cr 00E so 00F si 010 dle 011 dc1

012 dc2 013 dc3 014 dc4 015 nak 016 syn 017 etb

018 can 019 em 01A sub 01B esc 01C fs 01D gs

01E rs 01F us 0FF del

轉換字符的默認和支持的字節數如下所示:

%_c,%_p,%_u,%c

一個字節只能計數。

%d,%i,%o %u,%X,%x

支持四字節默認值,一個,兩個和四個字節計數。

%E,%e,%f %G,%g

默認八字節,支持四字節計數。

每個格式字符串解釋的數據量是每個格式單元所需的數據總和,即迭代次數乘以字節數,或者迭代次數乘以格式所需的字節數(如果字節數不是指定。

輸入在``blocks''中被處理,其中一個塊被定義為由任何格式字符串指定的最大數據量。 格式化字符串解釋小於輸入塊的數據價值,其最後一個格式單元解釋一定數量的字節並且沒有指定的迭代計數,迭代計數遞增直到整個輸入塊已經被處理或者沒有足夠的數據保留在塊中以滿足格式字符串。

如果由於用戶指定或hexdump修改上述迭代計數而導致迭代計數大於1,則在上次迭代期間不輸出尾隨空白字符。

指定字節計數以及多個轉換字符或字符串是錯誤的,除非其中一個轉換字符或字符串都是_a_A

如果由於指定-n選項或文件結束符而導致輸入數據僅部分滿足格式字符串,則輸入數據塊被填零以充分顯示所有可用數據(即任何重疊的格式單位數據的結尾將顯示一些零字節數)。

通過這種格式字符串的進一步輸出被相同數量的空格取代。 相同數量的空格被定義為s轉換字符輸出的空格數,它與原始轉換字符或轉換字符串具有相同的字段寬度和精度,但帶有任何“ + ”“`”“` ”轉換標誌字符被刪除,並引用一個NULL字符串。

如果未指定格式字符串,則默認顯示等同於指定-x選項。

成功時退出0,如果發生錯誤,則退出> 0。

例子

閱讀格式顯示輸入內容:

“%06.6_ao”12/1“%3_u”“\ t \ t”“%_p”“\ n”

實現-x選項:

“%07.7_Ax \ n”“%07.7_ax”8/2“%04x”“\ n”

標準

該實用程序預計將與St -p1003.2兼容。