Linux xxd命令詳解


轉載:

https://www.sohu.com/a/334140700_354899

https://www.cnblogs.com/openix/archive/2012/04/23/2466320.html    xxd

 

xxd命令可以為給定的標准輸入或者文件做一次十六進制的輸出,它也可以將十六進制輸出轉換為原來的二進制格式,即將任意文件轉換為十六進制或二進制形式

如果沒有給定輸入文件,標准輸入就作為輸入文件infile。如果infile是一個‘-' 字符,也從標准輸入讀入。如果沒有給定outfile (或者它的文件名是一個‘-'字符), 結果將輸出至標准輸出。

  -a | -autoskip

       打開/關閉 autoskip: 用一個單獨的 '*' 來代替空行。默認關閉。

  -b | -bits

       轉到比特(二進制數字)模式,而不是十六進制模式。在這種模式下,每個字符被表示成八個0/1的數字, 而不是一般的十六進制形式。每一行都以一個用十六進制形式表示的行號,后面是 ascii (或ebcdic)形式開頭。命令行選項-r, -p, -i在這個模式下不起作用。

  -c cols | -cols cols

  -c cols | -cols cols每行表示<cols>個字符。 默認 16 (-i: 12, -ps: 30, -b: 6)。 最多256。

  -g bytes | -groupsize bytes

        每<bytes>個字符(每兩個十六進制字符或者八個二進制數字)之間用一個空格隔開。用 -g 0禁止分組。在普通模式中<Bytes>默認是2,在二進制模式中是1。分組並不適用於postscript 或者include style 選項。

  -h | -help

        顯示可用命令概述並且退出。不做其它任何事情。

  -i | -include

        輸出為C語言的包含文件形式。 除非xxd從標准輸入讀入,不然會輸出一個完整的靜態數組定義(與輸入文件同名)。

  -l len | -len len

        輸出<len>個字符后停止。

  -p | -ps | -postscript | -plain

      以postscript的連續十六進制轉儲輸出。這也叫做純十六進制轉儲。

  -r | -revert

      逆向操作:把十六進制轉儲轉換(或者打補丁)成二進制形式。如果不輸出到標准輸出,xxd並不把輸出文件截斷,而是直接寫到輸出文件。用 -r -p 來從一個沒有行號沒有某種列格式的純十六進制轉儲讀入。附加的空格 和換行可以出現在任何地方。

  -seek offset

       用在-r之后: 會在 當前 文件的 偏移量 上 增加 <offset>。

  -s [+][-]seek

       從infile的絕對或者相對偏移量<seek>開始。+表示相對於標准輸入當前的位置(如果不是標准輸入就沒有意義了)。- 表示從文件末尾(如果和+連用:從標准輸入當前位置)向前數一些字符,從那個地方開始。如果沒有 -s選項,xxd從當前位置開始。

   -u    

用大寫字母。默認的是小寫字母。

   -v | -version

       顯示版本字符串。

 

例:

將文件內容轉換為十六進制:

xxd secret.txt

使用xxd跳過第n行,想要從第6行開始生成十六進制轉儲(0x50表示第6行,0x00表示第1行)

xxd -s 0x50 secret.txt

將輸出限制為特定長度,從第一行(0x00)打印到第5行(0x40)

xxd -l 0x50 secret.txt

將文件內容轉換為二進制文件:

xxd -b secret.txt

設置列長,默認列長度為16,即16個字符,包括空格,將列長度設置為9:現在我們將列長度設置為“9”:

xxd -c 9 secret.txt

純16進制轉儲,輸出保存在hex文件中,並使用cat命令從hex文件中讀取輸出:

xxd -p secret.txt > hex

cat hex

還原hex文件,將純十六進制轉儲的反向輸出打印為了ASCII格式:

xxd -r -p hex

分組大小字節,將輸出分組為多少個八位字節,默認是2個字節,接下來設為8,即8個字節一組,分為2組:

xxd -g 8 secret.txt

 

更多的組合格式:

xxd -l 0x30 -g 8 secret.txt

xxd -l 0x40 -c 9 secret.txt


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM