blob: 7aa3ff1a679a305aa23715c7c583fce2592909a6 [file] [log] [blame]
Bram Moolenaar402d2fe2005-04-15 21:00:38 +00001.TH XXD 1 "août 1996" "Page de manuel pour xxd"
2.\"
3.\" 21st May 1996
4.\" Man page author:
5.\" Tony Nugent <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
6.\" Changes by Bram Moolenaar <Bram@vim.org>
7.\" French translation by David Blanchet <david.blanchet@free.fr> 2005-03
8.SH NOM
9.I xxd
10\- convertit en représentation hexadécimale et inversement.
11.SH SYNOPSIS
12.B xxd
13\-h[elp]
14.br
15.B xxd
16[options] [fichier_entree [fichier_sortie]]
17.br
18.B xxd
19\-r[evert] [options] [fichier_entree [fichier_sortie]]
20.SH DESCRIPTION
21.I xxd
22crée un fichier contenant la représentation hexadécimale d'un fichier
23binaire ou de l'entrée standard.
24Il peut également convertir un fichier de codes hexadécimaux en un fichier
25binaire.
26Comme
Bram Moolenaarc17ef8e2006-03-25 21:48:58 +000027.BR uuencode (1)
Bram Moolenaar402d2fe2005-04-15 21:00:38 +000028et
Bram Moolenaarc17ef8e2006-03-25 21:48:58 +000029.BR uudecode (1)
Bram Moolenaar402d2fe2005-04-15 21:00:38 +000030il permet la transmission de données binaires dans une représentation ASCII
31compatible avec le courrier électronique, mais a l'avantage de décoder la
32sortie standard.
33De plus, il peut être utilisé pour appliquer des rustines à des fichiers
34binaires.
35.SH OPTIONS
36Si aucun
37.I fichier_entree
38n'est spécifié, l'entrée standard est utilisée.
39Si
40.I fichier_entree
41correspond au caractère
42.RB '\-'
43\, l'entrée standard est employée comme source des données en entrée.
44Si aucun
45.I fichier_sortie
46n'est spécifié (ou qu'un caractère
47.RB '\-'
48est donné à sa place), le résultat est envoyé sur la sortie standard.
49.PP
50NOTE : un analyseur paresseux est utilisé. Il ne vérifie pas au-delà de la
51première lettre de l'option, à moins que cette dernière ne requiert un
52paramètre.
53L'espace entre l'option et son paramètre est optionnel.
54Les paramètres des options peuvent être spécifiés en notation décimale,
55hexadécimale ou octale.
56Ainsi
57.BR \-c8 ,
58.BR "\-c 8" ,
59.B \-c 010
60et
61.B \-cols 8
62sont tous équivalents.
63.TP
64.IR \-a " | " \-autoskip
65active la fonctionnalité "autoskip" : le caractère '*' remplace les lignes
66d'octets nuls. Désactivée par défaut.
67.TP
68.IR \-b " | " \-bits
69Convertit en binaires plutôt qu'en hexadécimal.
70Cette option écrit les octets comme une séquence de "1" et de "0" au lieu
71d'une conversion en hexadécimal traditionnel. Chaque ligne est précédée par un
72numéro de ligne en hexadécimal et suivie de la représentation ASCII (ou
tristhaus85f45212023-10-06 19:51:13 +020073EBCDIC) correspondante. Les options \-p, \-i ne fonctionnent pas dans ce
Bram Moolenaar402d2fe2005-04-15 21:00:38 +000074mode.
75.TP
76.IR "\-c cols " | " \-cols cols"
77place
78.RI < cols >
79octets par ligne. 16 par défaut (\-i : 12, \-ps : 30, \-b : 6). Maximum 256.
80.TP
81.IR \-E " | " \-EBCDIC
82Passe le codage des caractères de la colonne de droite de ASCII à EBCDIC.
83Cela ne change pas la représentation hexadécimale. Cette option est sans effet
84quand elle est utilisée avec \-r, \-p or \-i.
85.TP
86.IR "\-g octets " | " \-groupsize octets"
87Regroupe les octets (deux chiffres hexadécimaux ou huit chiffres binaires)
88par groupe de
89.RI < octets >
90\, séparés par des espaces blancs. Spécifiez
91.I \-g 0
92pour supprimer le regroupement.
93.RI < octets >
94vaut 2 par défaut dans le mode normal et \fI1\fP en
95représentation binaire. Le regroupement ne s'applique pas aux styles
96Postscript et Include.
97.TP
98.IR \-h " | " \-help
99Affiche un résumé des commandes disponibles et quitte. Aucune conversion n'est
100effectuée.
101.TP
102.IR \-i " | " \-include
103produit une sortie dans le style #include (fichier C à inclure). La définition
104complète d'un tableau statique est écrite et est nommée d'après le fichier
105d'origine, à moins que xxd lise depuis l'entrée standard.
106.TP
107.IR "\-l long " | " \-len long"
108Arrête après l'écriture de
109.RI < long >
110octets.
111.TP
112.IR \-p " | " \-ps " | " \-postscript " | " \-plain
113Produit une conversion continue dans le style Postscript (postscript continuous
Bram Moolenaar47003982021-12-05 21:54:04 +0000114hexdump style).
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000115Également connu sous le nom de « conversion brute » (plain hexdump style).
116.TP
117.IR \-r " | " \-revert
118Opération inverse : convertit un fichier hexadécimal en un fichier binaire (ou
119applique une rustine à un fichier binaire).
120Si l'écriture n'a pas lieu sur la sortie standard, xxd écrit dans le fichier
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000121qu'il produit sans le tronquer. Utilisez la combinaison
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000122.I \-r \-p
123pour lire de l'hexadécimal brut sans information sur le numéro des lignes et
124sans format de colonnes particulier. Des espaces blancs et coupures de lignes
125supplémentaires sont autorisés à n'importe quel endroit.
126.TP
127.I \-seek décalage
128Utilisé après l'option
Bram Moolenaarc17ef8e2006-03-25 21:48:58 +0000129.IR \-r :
130inverse la conversion en ajoutant
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000131.RI < décalage >
132aux positions dans le fichier données dans le code hexadécimal.
133.TP
Bram Moolenaarc17ef8e2006-03-25 21:48:58 +0000134.I \-s [+][\-]décalage
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000135Débute au
136.RI < décalage >
137absolu ou relatif dans fichier_entree.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100138\fI+ \fRindique que le décalage est relatif à la position courante dans
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000139l'entrée standard (sans effet si la lecture n'a pas lieu sur l'entrée
140standard). \fI\- \fRindique un décalage en caractères depuis la fin de
Bram Moolenaarc17ef8e2006-03-25 21:48:58 +0000141l'entrée (utilisé avec \fI+\fR, désigne la position avant la position
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000142actuelle de l'entrée standard).
143Sans l'option \-s, xxd démarre à la position courante du fichier.
144.TP
145.I \-u
146Utilise des chiffres hexadécimaux majuscules. La casse par défaut est
147minuscule.
148.TP
149.IR \-v " | " \-version
150Affiche la version de xxd.
151.SH MISE EN GARDE
152.I xxd \-r
153effectue des opérations internes un peu obscures lors de l'évaluation
154des informations sur les numéros de lignes. Si le fichier de sortie est
155adressable, alors les numéros de lignes au début de chaque ligne d'hexadécimal
156peuvent être désordonnées, des lignes peuvent manquer ou se chevaucher. Dans
157ces cas, xxd utilisera lseek(2) pour déterminer la prochaine position. Si le
158fichier n'est pas adressable, seuls les vides sont autorisés, et ils seront
159comblés par des octets nuls.
160.PP
161.I xxd \-r
Bram Moolenaar543b7ef2013-06-01 14:50:56 +0200162ne génère aucune erreur lors de l'analyse. Les problèmes sont passés
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000163silencieusement.
164.PP
165Lors de l'édition de la représentation hexadécimale, veuillez noter que
166.I xxd \-r
167ignore tout ce qui se trouve sur la ligne après avoir lu suffisamment de
168données hexadécimales (voir l'option \-c). Cela signifie également que les
169modifications dans la colonne ASCII (ou EBCDIC) sont toujours ignorées. La
170conversion inverse de données hexadécimales brutes (postscript) avec xxd \-r
171\-p ne dépend pas d'un nombre correct de colonnes. Dans ce cas, tout ce qui
172ressemble à une paire de chiffres hexadécimaux est interprété.
173.PP
174Remarquez la différence entre
175.br
176\fI% xxd \-i fichier\fR
177.br
178et
179.br
Bram Moolenaarc17ef8e2006-03-25 21:48:58 +0000180\fI% xxd \-i < fichier\fR
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000181.PP
182.I xxd \-s \+seek
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000183peut différer de
Bram Moolenaarc17ef8e2006-03-25 21:48:58 +0000184.IR "xxd \-s seek" ,
185car lseek(2) est utilisé pour « revenir en arrière ». Le '+' fait une
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000186différence quand la source des données est l'entrée standard et si la position
187dans le fichier de l'entrée standard n'est pas au début du fichier lorsque xxd
188est démarré et qu'il reçoit ses données.
189L'exemple suivant peut vous aider à comprendre (ou bien vous perdre davantage
190encore !)...
191.PP
192Remettre l'entrée standard au départ avant de lire ; nécessaire car 'cat' a
193déjà lu jusqu'à la fin de l'entrée standard.
194.br
195\fI% sh \-c 'cat > donnees_binaires; xxd \-s 0 > donnees_hexa' < fichier\fR
196.PP
197Convertir à partir de la position 0x480 (= 1024 + 128) du fichier.
198Le symbole '+' signifie "relativement à la position actuelle', ainsi 128 est
199ajouté aux 1024 octets comptabilisés pour dd.
200.br
201\fI% sh \-c 'dd of=donnees_binaires bs=1k count=1; xxd \-s +128 >
202donnees_hexa' < fichier\fR
203.PP
Bram Moolenaarc17ef8e2006-03-25 21:48:58 +0000204Convertir de fichier depuis la position 0x100 (= 1024 \- 768) du fichier.
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000205.br
206\fI% sh \-c 'dd of=donnees_binaires bs=1k count=1; xxd \-s +\-768 >
207donnees_hexa' < fichier\fR
208.PP
209Toutefois, cette situation est peu fréquente et l'utilisation de '+' est
210rarement requise. L'auteur préfère surveiller les effets de xxd avec strace(1)
211ou truss(1) quand \-s est employé.
212.SH EXEMPLES
213Afficher la totalité du
214.B fichier
215sauf les trois premières lignes (0x30 octets en hexadécimal).
216.br
217\fI% xxd \-s 0x30 fichier\fR
218.PP
219afficher les trois dernières lignes (0x30 octets en hexadécimal) du
220.B fichier
221\.
222.br
223\fI% xxd \-s \-0x30 fichier\fR
224.PP
225.br
226Afficher 120 octets convertis en continu, avec 20 octets par ligne.
227.br
228\fI% xxd \-l 120 \-ps \-c 20 xxd\-fr.1\fR
229.br
2302e54482058584420312022616ffb742031393936
231.br
23222202250616765206465206d616e75656c20706f
233.br
234757220787864220a2e5c220a2e5c222032317374
235.br
236204d617920313939360a2e5c22204d616e207061
237.br
238676520617574686f723a0a2e5c2220202020546f
239.br
2406e79204e7567656e74203c746f6e79407363746e
241.br
242204e7567656e74203c746f6e79407363746e7567
243.br
2442e54482058584420312022417567757374203139
245.PP
246Convertir les 120 premiers octets de cette page de manuel avec 12 octets par
247ligne.
248.br
249\fI% xxd \-l 120 \-c 12 xxd\-fr.1\fR
250.br
2510000000: 2e54 4820 5858 4420 3120 2261 .TH XXD 1 "a
252.br
253000000c: 6ffb 7420 3139 3936 2220 2250 o.t 1996" "P
254.br
2550000018: 6167 6520 6465 206d 616e 7565 age de manue
256.br
2570000024: 6c20 706f 7572 2078 7864 220a l pour xxd".
258.br
2590000030: 2e5c 220a 2e5c 2220 3231 7374 .\"..\" 21st
260.br
Bram Moolenaarba3ff532018-11-04 14:45:49 +0100261000003c: 204d 6179 2031 3939 360a 2e5c May 1996..\\
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000262.br
2630000048: 2220 4d61 6e20 7061 6765 2061 " Man page a
264.br
2650000054: 7574 686f 723a 0a2e 5c22 2020 uthor:..\"
266.br
2670000060: 2020 546f 6e79 204e 7567 656e Tony Nugen
268.br
269000006c: 7420 3c74 6f6e 7940 7363 746e t <tony@sctn
270.PP
271Afficher la date écrite au début du fichier xxd\-fr.1.
272.br
273\fI% xxd \-s 0x38 \-l 13 \-c 13 xxd.1\fR
274.br
2750000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996
276.PP
277Copier
278.B fichier_entree
279vers
280.B fichier_sortie
281en ajoutant 100 octets de valeur 0x00 avant.
282.br
283\fI% xxd fichier_entree | xxd \-r \-s 100 \> fichier_sortie\fR
284.PP
285Patcher la date dans le fichier xxd.1
286.br
287\fI% echo '0000037: 3574 68' | xxd \-r \- xxd\-fr.1\fR
288.br
289\fI% xxd \-s 0x38 \-l 13 \-c 13 xxd\-fr.1\fR
290.br
2910000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996
292.PP
293Créer un fichier de 65537 octets tous nuls (0x00),
294sauf le dernier qui vaut 'A' (0x41 en hexadécimal).
295.br
296\fI% echo '010000: 41' | xxd \-r \> fichier\fR
297.PP
298.br
299Convertir le fichier de l'exemple précédent avec la fonctionnalité "autoskip".
300.br
301\fI% xxd \-a \-c 12 fichier\fR
302.br
3030000000: 0000 0000 0000 0000 0000 0000 ............
304.br
305*
306.br
307000fffc: 0000 0000 40 ....A
308.PP
309Créer un fichier d'un octet, contenant seulement le caractère 'A'.
Bram Moolenaar543b7ef2013-06-01 14:50:56 +0200310Le nombre après '\-r \-s' s'ajoute aux numéros de lignes trouvées dans le
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100311fichier ; les octets initiaux sont supprimés.
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000312.br
313\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> fichier\fR
314.PP
315Utiliser xxd comme filtre dans un éditeur tel que
316.B vim(1)
317pour convertir une zone comprise entre les marques 'a' et 'z'.
318.br
319\fI:'a,'z!xxd\fR
320.PP
321Utiliser xxd comme filtre dans un éditeur tel que
322.B vim(1)
323pour récupérer une conversion binaire comprise entre les marques 'a' et 'z'.
324.br
325\fI:'a,'z!xxd \-r\fR
326.PP
327Utiliser xxd comme filtre dans un éditeur tel que
328.B vim(1)
329pour récupérer une ligne convertie. Placez le curseur sur la ligne et tapez :
330.br
331\fI!!xxd \-r\fR
332.PP
333Lire des caractères depuis une connexion série :
334.br
335\fI% xxd \-c1 < /dev/term/b &\fR
336.br
337\fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR
338.br
339\fI% echo \-n foo > /dev/term/b\fR
340.SH VALEURS DE RETOUR
341Les erreurs suivantes sont rapportées :
342.TP
3430
344aucune erreur ne s'est produit.
345.TP
346\-1
347opération non supportée (
348.I xxd \-r \-i
349reste impossible).
350.TP
3511
352erreur lors de l'analyse des options.
353.TP
3542
355problème avec le fichier d'entrée.
356.TP
3573
358problème avec le fichier de sortie.
359.TP
3604, 5
361la position spécifiée n'est pas atteignable.
362.SH VOIR AUSSI
363uuencode(1), uudecode(1), patch(1)
364.SH AVERTISSEMENTS
365L'étrangeté de cet outil reflète celle du cerveau de ses créateurs.
366Utilisez cet outil à vos risques et périls. Dupliquez vos fichiers.
367Surveillez l'outil. Devenez un gourou.
368.SH VERSION
369Cette page de manuel documente la version 1.7 de xxd.
370.SH AUTEUR
371(c) 1990-1997 par Juergen Weigert
372.br
373<jnweiger@informatik.uni-erlangen.de>
374.LP
375"Distribute freely and credit me,
376.br
377make money and share with me,
378.br
379lose money and don't ask me."
380.PP
381Distribution libre en citant l'auteur,
382.br
383gagnez de l'argent, pensez à moi,
384.br
385perdez de l'argent, oubliez-moi.
386.PP
387Page de manuel débutée par Tony Nugent
388.br
389<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
390.br
391Modifications mineures par Bram Moolenaar.
392Édité par Juergen Weigert.
393.SH TRADUCTION
394Cette page de manuel a été traduite par David Blanchet
395<david.blanchet@free.fr> 2004-12-24.
Bram Moolenaar543b7ef2013-06-01 14:50:56 +0200396Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>