Commandes Linux : xxd

XXD

Installé avec le paquet vim-common
Voir aussi : hexdump et od

 

Afficher la version de la commande xxd

xxd --version

 

Fichier utilisé pour les tests

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Aenean commodo ligula eget dolor.

 

Convertir une chaine ASCII en hexadécimal

echo "asciistring" | xxd -p

ex :

# echo opensharing.priv | xxd -p
6f70656e73686172696e672e707269760a

 

Convertir une chaine hexadécimale en ASCII

echo "hexastring" | xxd -p -r

ex :

# echo 6f70656e73686172696e672e707269760a | xxd -p -r
opensharing.priv

 

Convertir un fichier ASCII en hexadécimal

xxd filename

Le fichier est converti en hexadécimal : chaque ligne regroupée en 8 colonnes de 2 octets chacune (soit 16 caractères ASCII par ligne).
L’affichage se fait en LSB-MSB (Less Significant Bytes – Most Significant Bytes), contrairement à hexdump par défaut.
ex :

# xxd file1.txt
0000000: 4c6f 7265 6d20 6970 7375 6d20 646f 6c6f  Lorem ipsum dolo
0000010: 7220 7369 7420 616d 6574 2c20 636f 6e73  r sit amet, cons
0000020: 6563 7465 7475 6572 2061 6469 7069 7363  ectetuer adipisc
0000030: 696e 6720 656c 6974 2e0a 4165 6e65 616e  ing elit..Aenean
0000040: 2063 6f6d 6d6f 646f 206c 6967 756c 6120   commodo ligula 
0000050: 6567 6574 2064 6f6c 6f72 2e0a            eget dolor..

 

Spécifier le nombre d’octets par ligne

xxd -c octets filename

Par défaut, chaque ligne représente 16 octets (8 colonnes de 2 octets) : option -c à 16.
L’affichage se fait en LSB-MSB (Less Significant Bytes – Most Significant Bytes), contrairement à hexdump par défaut.
ex :

# xxd -c 20 file1.txt
0000000: 4c6f 7265 6d20 6970 7375 6d20 646f 6c6f 7220 7369  Lorem ipsum dolor si
0000014: 7420 616d 6574 2c20 636f 6e73 6563 7465 7475 6572  t amet, consectetuer
0000028: 2061 6469 7069 7363 696e 6720 656c 6974 2e0a 4165   adipiscing elit..Ae
000003c: 6e65 616e 2063 6f6d 6d6f 646f 206c 6967 756c 6120  nean commodo ligula 
0000050: 6567 6574 2064 6f6c 6f72 2e0a                      eget dolor..

Ci-dessus, chaque ligne représente 20 octets (10 colonnes de 2 octets chacune).

 

Spécifier le nombre d’octets par colonne

xxd -g octets filename

Par défaut, chaque ligne représente 16 octets (8 colonnes de 2 octets) : option -g à 2.
L’affichage se fait en LSB-MSB (Less Significant Bytes – Most Significant Bytes), contrairement à hexdump par défaut.
ex :

# xxd -g 1 file1.txt
0000000: 4c 6f 72 65 6d 20 69 70 73 75 6d 20 64 6f 6c 6f  Lorem ipsum dolo
0000010: 72 20 73 69 74 20 61 6d 65 74 2c 20 63 6f 6e 73  r sit amet, cons
0000020: 65 63 74 65 74 75 65 72 20 61 64 69 70 69 73 63  ectetuer adipisc
0000030: 69 6e 67 20 65 6c 69 74 2e 0a 41 65 6e 65 61 6e  ing elit..Aenean
0000040: 20 63 6f 6d 6d 6f 64 6f 20 6c 69 67 75 6c 61 20   commodo ligula 
0000050: 65 67 65 74 20 64 6f 6c 6f 72 2e 0a              eget dolor..

Ci-dessus, chaque ligne représente 16 octets (16 colonnes de 1 octet chacune).

 

Convertir un fichier ASCII en binaire

xxd -b filename

Le fichier est converti en binaire : chaque ligne regroupée en 6 colonnes de 1 octet chacune (soit 6 caractères ASCII par ligne).
ex :

# xxd -b file1.txt
0000000: 01001100 01101111 01110010 01100101 01101101 00100000  Lorem 
0000006: 01101001 01110000 01110011 01110101 01101101 00100000  ipsum 
000000c: 01100100 01101111 01101100 01101111 01110010 00100000  dolor 
0000012: 01110011 01101001 01110100 00100000 01100001 01101101  sit am
0000018: 01100101 01110100 00101100 00100000 01100011 01101111  et, co
000001e: 01101110 01110011 01100101 01100011 01110100 01100101  nsecte
0000024: 01110100 01110101 01100101 01110010 00100000 01100001  tuer a
000002a: 01100100 01101001 01110000 01101001 01110011 01100011  dipisc
0000030: 01101001 01101110 01100111 00100000 01100101 01101100  ing el
0000036: 01101001 01110100 00101110 00001010 01000001 01100101  it..Ae
000003c: 01101110 01100101 01100001 01101110 00100000 01100011  nean c
0000042: 01101111 01101101 01101101 01101111 01100100 01101111  ommodo
0000048: 00100000 01101100 01101001 01100111 01110101 01101100   ligul
000004e: 01100001 00100000 01100101 01100111 01100101 01110100  a eget
0000054: 00100000 01100100 01101111 01101100 01101111 01110010   dolor
000005a: 00101110 00001010

 

Afficher les caractères hexadécimaux en majuscules

xxd -u filename

L’affichage se fait en LSB-MSB (Less Significant Bytes – Most Significant Bytes), contrairement à hexdump par défaut.

 

Restreindre l’affichage à N octets

xxd -l octets filename

Equivaut à :
hexdump -n octets filename
ex :

# xxd -g 1 -l 12 file1.txt
0000000: 4c 6f 72 65 6d 20 69 70 73 75 6d 20              Lorem ipsum

Affichage de 12 octets, en hexadécimal, en partant du début du fichier.

 

Aller directement à un octet particulier

xxd -s octet filename

Equivaut à :
hexdump -s octet filename
ex :

# xxd -g 1 -l 14 -s 58 file1.txt
000003a: 41 65 6e 65 61 6e 20 63 6f 6d 6d 6f 64 6f        Aenean commodo
00000048

Affichage de 14 octets à partir de la position 58, en hexadécimal.

Fermer le menu
%d blogueurs aiment cette page :