XXD(1)

NOM
xxd - convertit en repr�sentation hexad�cimale et inversement.

SYNOPSIS
xxd -h[elp]
xxd [options] [fichier_entree [fichier_sortie]]
xxd -r[evert] [options] [fichier_entree [fichier_sortie]]

DESCRIPTION
xxd cr�e un fichier contenant la repr�sentation hexad�cimale d'un fichier binaire ou de l'entr�e standard. Il peut �galement convertir un fichier de codes hexad�cimaux en un fichier binaire. Comme uuencode(1) et uudecode(1) il permet la transmission de donn�es binaires dans une repr�sentation ASCII compatible avec le courrier �lectronique, mais a l'avantage de d�coder la sortie standard. De plus, il peut �tre utilis� pour appliquer des rustines � des fichiers binaires.

OPTIONS
Si aucun fichier_entree n'est sp�cifi�, l'entr�e standard est utilis�e. Si fichier_entree correspond au caract�re '-' l'entr�e standard est employ�e comme source des donn�es en entr�e. Si aucun fichier_sortie n'est sp�cifi� (ou qu'un caract�re '-' est donn� � sa place), le r�sultat est envoy� sur la sortie standard.

NOTE : un analyseur paresseux est utilis�. Il ne v�rifie pas au-del� de la premi�re lettre de l'option, � moins que cette derni�re ne requiert un param�tre. L'espace entre l'option et son param�tre est optionnel. Les param�tres des options peuvent �tre sp�cifi�s en notation d�cimale, hexad�cimale ou octale. Ainsi -c8, -c 8, -c 010 et -cols 8 sont tous �quivalents.

-a | -autoskip
    active la fonctionnalit� "autoskip" : le caract�re '*' remplace les lignes d'octets nuls. D�sactiv�e par d�faut.

-b | -bits
    Convertit en binaires plut�t qu'en hexad�cimal. Cette option �crit les octets comme une s�quence de "1" et de "0" au lieu d'une conversion en hexad�cimal traditionnel. Chaque ligne est pr�c�d�e par un num�ro de ligne en hexad�cimal et suivie de la repr�sentation ASCII (ou EBCDIC) correspondante. Les options -p, -i ne fonctionnent pas dans ce mode.

-c cols | -cols cols
    place <cols> octets par ligne. 16 par d�faut (-i : 12, -ps : 30, -b : 6). Maximum 256.

-E | -EBCDIC
    Passe le codage des caract�res de la colonne de droite de ASCII � EBCDIC. Cela ne change pas la repr�sentation hexad�cimale. Cette option est sans effet quand elle est utilis�e avec -r, -p or -i.

-g octets | -groupsize octets
    Regroupe les octets (deux chiffres hexad�cimaux ou huit chiffres binaires) par groupe de <octets> s�par�s par des espaces blancs. Sp�cifiez -g 0 pour supprimer le regroupement. <octets> vaut 2 par d�faut dans le mode normal et 1 en repr�sentation binaire. Le regroupement ne s'applique pas aux styles Postscript et Include.

-h | -help
    Affiche un r�sum� des commandes disponibles et quitte. Aucune conversion n'est effectu�e.

-i | -include
    produit une sortie dans le style #include (fichier C � inclure). La d�finition compl�te d'un tableau statique est �crite et est nomm�e d'apr�s le fichier d'origine, � moins que xxd lise depuis l'entr�e standard.

-l long | -len long
    Arr�te apr�s l'�criture de <long> octets.

-p | -ps | -postscript | -plain
    Produit une conversion continue dans le style Postscript (postscript continuous hexdump style). �galement connu sous le nom de � conversion brute � (plain hexdump style).

-r | -revert
    Op�ration inverse : convertit un fichier hexad�cimal en un fichier binaire (ou applique une rustine � un fichier binaire). Si l'�criture n'a pas lieu sur la sortie standard, xxd �crit dans le fichier qu'il produit sans le tronquer. Utilisez la combinaison -r -p pour lire de l'hexad�cimal brut sans information sur le num�ro des lignes et sans format de colonnes particulier. Des espaces blancs et coupures de lignes suppl�mentaires sont autoris�s � n'importe quel endroit.

-seek d�calage
    Utilis� apr�s l'option -r: inverse la conversion en ajoutant <d�calage> aux positions dans le fichier donn�es dans le code hexad�cimal.

-s [+][-]d�calage
    D�bute au <d�calage> absolu ou relatif dans fichier_entree. + indique que le d�calage est relatif � la position courante dans l'entr�e standard (sans effet si la lecture n'a pas lieu sur l'entr�e standard). - indique un d�calage en caract�res depuis la fin de l'entr�e (utilis� avec +, d�signe la position avant la position actuelle de l'entr�e standard). Sans l'option -s, xxd d�marre � la position courante du fichier.

-u  Utilise des chiffres hexad�cimaux majuscules. La casse par d�faut est minuscule.

-v | -version
    Affiche la version de xxd.

MISE EN GARDE
xxd -r effectue des op�rations internes un peu obscures lors de l'�valuation des informations sur les num�ros de lignes. Si le fichier de sortie est adressable, alors les num�ros de lignes au d�but de chaque ligne d'hexad�cimal peuvent �tre d�sordonn�es, des lignes peuvent manquer ou se chevaucher. Dans ces cas, xxd utilisera lseek(2) pour d�terminer la prochaine position. Si le fichier n'est pas adressable, seuls les vides sont autoris�s, et ils seront combl�s par des octets nuls.

xxd -r ne g�n�re aucune erreur lors de l'analyse. Les probl�mes sont pass�s silencieusement.

Lors de l'�dition de la repr�sentation hexad�cimale, veuillez noter que xxd -r ignore tout ce qui se trouve sur la ligne apr�s avoir lu suffisamment de donn�es hexad�cimales (voir l'option -c). Cela signifie �galement que les modifications dans la colonne ASCII (ou EBCDIC) sont toujours ignor�es. La conversion inverse de donn�es hexad�cimales brutes (postscript) avec xxd -r -p ne d�pend pas d'un nombre correct de colonnes. Dans ce cas, tout ce qui ressemble � une paire de chiffres hexad�cimaux est interpr�t�.

Remarquez la diff�rence entre
% xxd -i fichier
et
% xxd -i < fichier

xxd -s +seek peut diff�rer de xxd -s seek, car lseek(2) est utilis� pour � revenir en arri�re �. Le '+' fait une diff�rence quand la source des donn�es est l'entr�e standard et si la position dans le fichier de l'entr�e standard n'est pas au d�but du fichier lorsque xxd est d�marr� et qu'il re�oit ses donn�es. L'exemple suivant peut vous aider � comprendre (ou bien vous perdre davantage encore !)...

Remettre l'entr�e standard au d�part avant de lire ; n�cessaire car 'cat' a d�j� lu jusqu'� la fin de l'entr�e standard.
% sh -c 'cat > donnees_binaires; xxd -s 0 > donnees_hexa' < fichier

Convertir � partir de la position 0x480 (= 1024 + 128) du fichier. Le symbole '+' signifie "relativement � la position actuelle', ainsi 128 est ajout� aux 1024 octets comptabilis�s pour dd.
% sh -c 'dd of=donnees_binaires bs=1k count=1; xxd -s +128 > donnees_hexa' < fichier

Convertir de fichier depuis la position 0x100 (= 1024 - 768) du fichier.
% sh -c 'dd of=donnees_binaires bs=1k count=1; xxd -s +-768 > donnees_hexa' < fichier

Toutefois, cette situation est peu fr�quente et l'utilisation de '+' est rarement requise. L'auteur pr�f�re surveiller les effets de xxd avec strace(1) ou truss(1) quand -s est employ�.

EXEMPLES
Afficher la totalit� du fichier sauf les trois premi�res lignes (0x30 octets en hexad�cimal).
% xxd -s 0x30 fichier

afficher les trois derni�res lignes (0x30 octets en hexad�cimal) du fichier .
% xxd -s -0x30 fichier

Afficher 120 octets convertis en continu, avec 20 octets par ligne.
% xxd -l 120 -ps -c 20 xxd-fr.1
2e54482058584420312022616ffb742031393936
22202250616765206465206d616e75656c20706f
757220787864220a2e5c220a2e5c222032317374
204d617920313939360a2e5c22204d616e207061
676520617574686f723a0a2e5c2220202020546f
6e79204e7567656e74203c746f6e79407363746e
204e7567656e74203c746f6e79407363746e7567
2e54482058584420312022417567757374203139

Convertir les 120 premiers octets de cette page de manuel avec 12 octets par ligne.
% xxd -l 120 -c 12 xxd-fr.1
0000000: 2e54 4820 5858 4420 3120 2261 .TH XXD 1 "a
000000c: 6ffb 7420 3139 3936 2220 2250 o.t 1996" "P
0000018: 6167 6520 6465 206d 616e 7565 age de manue
0000024: 6c20 706f 7572 2078 7864 220a l pour xxd".
0000030: 2e5c 220a 2e5c 2220 3231 7374 .
000003c: 204d 6179 2031 3939 360a 2e5c May 1996..\
0000048: 2220 4d61 6e20 7061 6765 2061 " Man page a
0000054: 7574 686f 723a 0a2e 5c22 2020 uthor:..
0000060: 2020 546f 6e79 204e 7567 656e Tony Nugen
000006c: 7420 3c74 6f6e 7940 7363 746e t <tony@sctn

Afficher la date �crite au d�but du fichier xxd-fr.1.
% xxd -s 0x38 -l 13 -c 13 xxd.1
0000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996

Copier fichier_entree vers fichier_sortie en ajoutant 100 octets de valeur 0x00 avant.
% xxd fichier_entree | xxd -r -s 100 > fichier_sortie

Patcher la date dans le fichier xxd.1
% echo '0000037: 3574 68' | xxd -r - xxd-fr.1
% xxd -s 0x38 -l 13 -c 13 xxd-fr.1
0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996

Cr�er un fichier de 65537 octets tous nuls (0x00), sauf le dernier qui vaut 'A' (0x41 en hexad�cimal).
% echo '010000: 41' | xxd -r > fichier

Convertir le fichier de l'exemple pr�c�dent avec la fonctionnalit� "autoskip".
% xxd -a -c 12 fichier
0000000: 0000 0000 0000 0000 0000 0000 ............
*
000fffc: 0000 0000 40 ....A

Cr�er un fichier d'un octet, contenant seulement le caract�re 'A'. Le nombre apr�s '-r -s' s'ajoute aux num�ros de lignes trouv�es dans le fichier ; les octets initiaux sont supprim�s.
% echo '010000: 41' | xxd -r -s -0x10000 > fichier

Utiliser xxd comme filtre dans un �diteur tel que mnv(1) pour convertir une zone comprise entre les marques 'a' et 'z'.
:'a,'z!xxd

Utiliser xxd comme filtre dans un �diteur tel que mnv(1) pour r�cup�rer une conversion binaire comprise entre les marques 'a' et 'z'.
:'a,'z!xxd -r

Utiliser xxd comme filtre dans un �diteur tel que mnv(1) pour r�cup�rer une ligne convertie. Placez le curseur sur la ligne et tapez :
!!xxd -r

Lire des caract�res depuis une connexion s�rie :
% xxd -c1 < /dev/term/b &
% stty < /dev/term/b -echo -opost -isig -icanon min 1
% echo -n foo > /dev/term/b

VALEURS DE RETOUR
Les erreurs suivantes sont rapport�es :

0   aucune erreur ne s'est produit.

-1  op�ration non support�e ( xxd -r -i reste impossible).

1   erreur lors de l'analyse des options.

2   probl�me avec le fichier d'entr�e.

3   probl�me avec le fichier de sortie.

4, 5
    la position sp�cifi�e n'est pas atteignable.

VOIR AUSSI
uuencode(1), uudecode(1), patch(1)

AVERTISSEMENTS
L'�tranget� de cet outil refl�te celle du cerveau de ses cr�ateurs. Utilisez cet outil � vos risques et p�rils. Dupliquez vos fichiers. Surveillez l'outil. Devenez un gourou.

VERSION
Cette page de manuel documente la version 1.7 de xxd.

AUTEUR
(c) 1990-1997 par Juergen Weigert
<jnweiger@informatik.uni-erlangen.de>

"Distribute freely and credit me,
make money and share with me,
lose money and don't ask me."

Distribution libre en citant l'auteur,
gagnez de l'argent, pensez � moi,
perdez de l'argent, oubliez-moi.

Page de manuel d�but�e par Tony Nugent
<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
Modifications mineures par Bram Moolenaar. �dit� par Juergen Weigert.

TRADUCTION
Cette page de manuel a �t� traduite par David Blanchet <david.blanchet@free.fr> 2004-12-24. Mise � jour 2013-05-10, Dominique Pell� <dominique.pelle@gmail.com>