237
|
1 .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
|
|
22 crée un fichier contenant la représentation hexadécimale d'un fichier
|
|
23 binaire ou de l'entrée standard.
|
|
24 Il peut également convertir un fichier de codes hexadécimaux en un fichier
|
|
25 binaire.
|
|
26 Comme
|
|
27 .BR uuencode(1)
|
|
28 et
|
|
29 .BR uudecode(1)
|
|
30 il permet la transmission de données binaires dans une représentation ASCII
|
|
31 compatible avec le courrier électronique, mais a l'avantage de décoder la
|
|
32 sortie standard.
|
|
33 De plus, il peut être utilisé pour appliquer des rustines à des fichiers
|
|
34 binaires.
|
|
35 .SH OPTIONS
|
|
36 Si aucun
|
|
37 .I fichier_entree
|
|
38 n'est spécifié, l'entrée standard est utilisée.
|
|
39 Si
|
|
40 .I fichier_entree
|
|
41 correspond au caractère
|
|
42 .RB '\-'
|
|
43 \, l'entrée standard est employée comme source des données en entrée.
|
|
44 Si aucun
|
|
45 .I fichier_sortie
|
|
46 n'est spécifié (ou qu'un caractère
|
|
47 .RB '\-'
|
|
48 est donné à sa place), le résultat est envoyé sur la sortie standard.
|
|
49 .PP
|
|
50 NOTE : un analyseur paresseux est utilisé. Il ne vérifie pas au-delà de la
|
|
51 première lettre de l'option, à moins que cette dernière ne requiert un
|
|
52 paramètre.
|
|
53 L'espace entre l'option et son paramètre est optionnel.
|
|
54 Les paramètres des options peuvent être spécifiés en notation décimale,
|
|
55 hexadécimale ou octale.
|
|
56 Ainsi
|
|
57 .BR \-c8 ,
|
|
58 .BR "\-c 8" ,
|
|
59 .B \-c 010
|
|
60 et
|
|
61 .B \-cols 8
|
|
62 sont tous équivalents.
|
|
63 .TP
|
|
64 .IR \-a " | " \-autoskip
|
|
65 active la fonctionnalité "autoskip" : le caractère '*' remplace les lignes
|
|
66 d'octets nuls. Désactivée par défaut.
|
|
67 .TP
|
|
68 .IR \-b " | " \-bits
|
|
69 Convertit en binaires plutôt qu'en hexadécimal.
|
|
70 Cette option écrit les octets comme une séquence de "1" et de "0" au lieu
|
|
71 d'une conversion en hexadécimal traditionnel. Chaque ligne est précédée par un
|
|
72 numéro de ligne en hexadécimal et suivie de la représentation ASCII (ou
|
|
73 EBCDIC) correspondante. Les options \-r, \-p, \-i ne fonctionnent pas dans ce
|
|
74 mode.
|
|
75 .TP
|
|
76 .IR "\-c cols " | " \-cols cols"
|
|
77 place
|
|
78 .RI < cols >
|
|
79 octets par ligne. 16 par défaut (\-i : 12, \-ps : 30, \-b : 6). Maximum 256.
|
|
80 .TP
|
|
81 .IR \-E " | " \-EBCDIC
|
|
82 Passe le codage des caractères de la colonne de droite de ASCII à EBCDIC.
|
|
83 Cela ne change pas la représentation hexadécimale. Cette option est sans effet
|
|
84 quand elle est utilisée avec \-r, \-p or \-i.
|
|
85 .TP
|
|
86 .IR "\-g octets " | " \-groupsize octets"
|
|
87 Regroupe les octets (deux chiffres hexadécimaux ou huit chiffres binaires)
|
|
88 par groupe de
|
|
89 .RI < octets >
|
|
90 \, séparés par des espaces blancs. Spécifiez
|
|
91 .I \-g 0
|
|
92 pour supprimer le regroupement.
|
|
93 .RI < octets >
|
|
94 vaut 2 par défaut dans le mode normal et \fI1\fP en
|
|
95 représentation binaire. Le regroupement ne s'applique pas aux styles
|
|
96 Postscript et Include.
|
|
97 .TP
|
|
98 .IR \-h " | " \-help
|
|
99 Affiche un résumé des commandes disponibles et quitte. Aucune conversion n'est
|
|
100 effectuée.
|
|
101 .TP
|
|
102 .IR \-i " | " \-include
|
|
103 produit une sortie dans le style #include (fichier C à inclure). La définition
|
|
104 complète d'un tableau statique est écrite et est nommée d'après le fichier
|
|
105 d'origine, à moins que xxd lise depuis l'entrée standard.
|
|
106 .TP
|
|
107 .IR "\-l long " | " \-len long"
|
|
108 Arrête après l'écriture de
|
|
109 .RI < long >
|
|
110 octets.
|
|
111 .TP
|
|
112 .IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
|
113 Produit une conversion continue dans le style Postscript (postscript continuous
|
|
114 hexdumd style).
|
|
115 Également connu sous le nom de « conversion brute » (plain hexdump style).
|
|
116 .TP
|
|
117 .IR \-r " | " \-revert
|
|
118 Opération inverse : convertit un fichier hexadécimal en un fichier binaire (ou
|
|
119 applique une rustine à un fichier binaire).
|
|
120 Si l'écriture n'a pas lieu sur la sortie standard, xxd écrit dans le fichier
|
|
121 qu'il produit sans le tronquer. Utilisez la combinaison
|
|
122 .I \-r \-p
|
|
123 pour lire de l'hexadécimal brut sans information sur le numéro des lignes et
|
|
124 sans format de colonnes particulier. Des espaces blancs et coupures de lignes
|
|
125 supplémentaires sont autorisés à n'importe quel endroit.
|
|
126 .TP
|
|
127 .I \-seek décalage
|
|
128 Utilisé après l'option
|
|
129 .I \-r
|
|
130 \: inverse la conversion en ajoutant
|
|
131 .RI < décalage >
|
|
132 aux positions dans le fichier données dans le code hexadécimal.
|
|
133 .TP
|
|
134 .I \-s [\+][\-]décalage
|
|
135 Débute au
|
|
136 .RI < décalage >
|
|
137 absolu ou relatif dans fichier_entree.
|
|
138 \fI\+ \fRindique que le décalage est relatif à la position courante dans
|
|
139 l'entrée standard (sans effet si la lecture n'a pas lieu sur l'entrée
|
|
140 standard). \fI\- \fRindique un décalage en caractères depuis la fin de
|
|
141 l'entrée (utilisé avec \fI \+ \fR, désigne la position avant la position
|
|
142 actuelle de l'entrée standard).
|
|
143 Sans l'option \-s, xxd démarre à la position courante du fichier.
|
|
144 .TP
|
|
145 .I \-u
|
|
146 Utilise des chiffres hexadécimaux majuscules. La casse par défaut est
|
|
147 minuscule.
|
|
148 .TP
|
|
149 .IR \-v " | " \-version
|
|
150 Affiche la version de xxd.
|
|
151 .SH MISE EN GARDE
|
|
152 .I xxd \-r
|
|
153 effectue des opérations internes un peu obscures lors de l'évaluation
|
|
154 des informations sur les numéros de lignes. Si le fichier de sortie est
|
|
155 adressable, alors les numéros de lignes au début de chaque ligne d'hexadécimal
|
|
156 peuvent être désordonnées, des lignes peuvent manquer ou se chevaucher. Dans
|
|
157 ces cas, xxd utilisera lseek(2) pour déterminer la prochaine position. Si le
|
|
158 fichier n'est pas adressable, seuls les vides sont autorisés, et ils seront
|
|
159 comblés par des octets nuls.
|
|
160 .PP
|
|
161 .I xxd \-r
|
|
162 ne génère aucune erreur lors de l'analyse. Le problème sont passés
|
|
163 silencieusement.
|
|
164 .PP
|
|
165 Lors de l'édition de la représentation hexadécimale, veuillez noter que
|
|
166 .I xxd \-r
|
|
167 ignore tout ce qui se trouve sur la ligne après avoir lu suffisamment de
|
|
168 données hexadécimales (voir l'option \-c). Cela signifie également que les
|
|
169 modifications dans la colonne ASCII (ou EBCDIC) sont toujours ignorées. La
|
|
170 conversion 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
|
|
172 ressemble à une paire de chiffres hexadécimaux est interprété.
|
|
173 .PP
|
|
174 Remarquez la différence entre
|
|
175 .br
|
|
176 \fI% xxd \-i fichier\fR
|
|
177 .br
|
|
178 et
|
|
179 .br
|
|
180 \fI% xxd \-i \< fichier\fR
|
|
181 .PP
|
|
182 .I xxd \-s \+seek
|
|
183 peut différer de
|
|
184 .I xxd \-s seek
|
|
185 \, car lseek(2) est utilisé pour « revenir en arrière ». Le '+' fait une
|
|
186 différence quand la source des données est l'entrée standard et si la position
|
|
187 dans le fichier de l'entrée standard n'est pas au début du fichier lorsque xxd
|
|
188 est démarré et qu'il reçoit ses données.
|
|
189 L'exemple suivant peut vous aider à comprendre (ou bien vous perdre davantage
|
|
190 encore !)...
|
|
191 .PP
|
|
192 Remettre l'entrée standard au départ avant de lire ; nécessaire car 'cat' a
|
|
193 dé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
|
|
197 Convertir à partir de la position 0x480 (= 1024 + 128) du fichier.
|
|
198 Le symbole '+' signifie "relativement à la position actuelle', ainsi 128 est
|
|
199 ajouté aux 1024 octets comptabilisés pour dd.
|
|
200 .br
|
|
201 \fI% sh \-c 'dd of=donnees_binaires bs=1k count=1; xxd \-s +128 >
|
|
202 donnees_hexa' < fichier\fR
|
|
203 .PP
|
|
204 Convertir de fichier depuis la position 0x100 (= 1024 - 768) du fichier.
|
|
205 .br
|
|
206 \fI% sh \-c 'dd of=donnees_binaires bs=1k count=1; xxd \-s +\-768 >
|
|
207 donnees_hexa' < fichier\fR
|
|
208 .PP
|
|
209 Toutefois, cette situation est peu fréquente et l'utilisation de '+' est
|
|
210 rarement requise. L'auteur préfère surveiller les effets de xxd avec strace(1)
|
|
211 ou truss(1) quand \-s est employé.
|
|
212 .SH EXEMPLES
|
|
213 Afficher la totalité du
|
|
214 .B fichier
|
|
215 sauf les trois premières lignes (0x30 octets en hexadécimal).
|
|
216 .br
|
|
217 \fI% xxd \-s 0x30 fichier\fR
|
|
218 .PP
|
|
219 afficher 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
|
|
226 Afficher 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
|
|
230 2e54482058584420312022616ffb742031393936
|
|
231 .br
|
|
232 22202250616765206465206d616e75656c20706f
|
|
233 .br
|
|
234 757220787864220a2e5c220a2e5c222032317374
|
|
235 .br
|
|
236 204d617920313939360a2e5c22204d616e207061
|
|
237 .br
|
|
238 676520617574686f723a0a2e5c2220202020546f
|
|
239 .br
|
|
240 6e79204e7567656e74203c746f6e79407363746e
|
|
241 .br
|
|
242 204e7567656e74203c746f6e79407363746e7567
|
|
243 .br
|
|
244 2e54482058584420312022417567757374203139
|
|
245 .PP
|
|
246 Convertir les 120 premiers octets de cette page de manuel avec 12 octets par
|
|
247 ligne.
|
|
248 .br
|
|
249 \fI% xxd \-l 120 \-c 12 xxd\-fr.1\fR
|
|
250 .br
|
|
251 0000000: 2e54 4820 5858 4420 3120 2261 .TH XXD 1 "a
|
|
252 .br
|
|
253 000000c: 6ffb 7420 3139 3936 2220 2250 o.t 1996" "P
|
|
254 .br
|
|
255 0000018: 6167 6520 6465 206d 616e 7565 age de manue
|
|
256 .br
|
|
257 0000024: 6c20 706f 7572 2078 7864 220a l pour xxd".
|
|
258 .br
|
|
259 0000030: 2e5c 220a 2e5c 2220 3231 7374 .\"..\" 21st
|
|
260 .br
|
|
261 000003c: 204d 6179 2031 3939 360a 2e5c May 1996..\
|
|
262 .br
|
|
263 0000048: 2220 4d61 6e20 7061 6765 2061 " Man page a
|
|
264 .br
|
|
265 0000054: 7574 686f 723a 0a2e 5c22 2020 uthor:..\"
|
|
266 .br
|
|
267 0000060: 2020 546f 6e79 204e 7567 656e Tony Nugen
|
|
268 .br
|
|
269 000006c: 7420 3c74 6f6e 7940 7363 746e t <tony@sctn
|
|
270 .PP
|
|
271 Afficher 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
|
|
275 0000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996
|
|
276 .PP
|
|
277 Copier
|
|
278 .B fichier_entree
|
|
279 vers
|
|
280 .B fichier_sortie
|
|
281 en ajoutant 100 octets de valeur 0x00 avant.
|
|
282 .br
|
|
283 \fI% xxd fichier_entree | xxd \-r \-s 100 \> fichier_sortie\fR
|
|
284 .PP
|
|
285 Patcher 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
|
|
291 0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996
|
|
292 .PP
|
|
293 Créer un fichier de 65537 octets tous nuls (0x00),
|
|
294 sauf le dernier qui vaut 'A' (0x41 en hexadécimal).
|
|
295 .br
|
|
296 \fI% echo '010000: 41' | xxd \-r \> fichier\fR
|
|
297 .PP
|
|
298 .br
|
|
299 Convertir le fichier de l'exemple précédent avec la fonctionnalité "autoskip".
|
|
300 .br
|
|
301 \fI% xxd \-a \-c 12 fichier\fR
|
|
302 .br
|
|
303 0000000: 0000 0000 0000 0000 0000 0000 ............
|
|
304 .br
|
|
305 *
|
|
306 .br
|
|
307 000fffc: 0000 0000 40 ....A
|
|
308 .PP
|
|
309 Créer un fichier d'un octet, contenant seulement le caractère 'A'.
|
|
310 Les nombres après '\-r \-s' s'ajoutent au numéros de lignes trouvées dans le
|
|
311 fichier ; XXX in effects, les octets initiaux sont supprimés.
|
|
312 .br
|
|
313 \fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> fichier\fR
|
|
314 .PP
|
|
315 Utiliser xxd comme filtre dans un éditeur tel que
|
|
316 .B vim(1)
|
|
317 pour convertir une zone comprise entre les marques 'a' et 'z'.
|
|
318 .br
|
|
319 \fI:'a,'z!xxd\fR
|
|
320 .PP
|
|
321 Utiliser xxd comme filtre dans un éditeur tel que
|
|
322 .B vim(1)
|
|
323 pour récupérer une conversion binaire comprise entre les marques 'a' et 'z'.
|
|
324 .br
|
|
325 \fI:'a,'z!xxd \-r\fR
|
|
326 .PP
|
|
327 Utiliser xxd comme filtre dans un éditeur tel que
|
|
328 .B vim(1)
|
|
329 pour récupérer une ligne convertie. Placez le curseur sur la ligne et tapez :
|
|
330 .br
|
|
331 \fI!!xxd \-r\fR
|
|
332 .PP
|
|
333 Lire 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
|
|
341 Les erreurs suivantes sont rapportées :
|
|
342 .TP
|
|
343 0
|
|
344 aucune erreur ne s'est produit.
|
|
345 .TP
|
|
346 \-1
|
|
347 opération non supportée (
|
|
348 .I xxd \-r \-i
|
|
349 reste impossible).
|
|
350 .TP
|
|
351 1
|
|
352 erreur lors de l'analyse des options.
|
|
353 .TP
|
|
354 2
|
|
355 problème avec le fichier d'entrée.
|
|
356 .TP
|
|
357 3
|
|
358 problème avec le fichier de sortie.
|
|
359 .TP
|
|
360 4, 5
|
|
361 la position spécifiée n'est pas atteignable.
|
|
362 .SH VOIR AUSSI
|
|
363 uuencode(1), uudecode(1), patch(1)
|
|
364 .SH AVERTISSEMENTS
|
|
365 L'étrangeté de cet outil reflète celle du cerveau de ses créateurs.
|
|
366 Utilisez cet outil à vos risques et périls. Dupliquez vos fichiers.
|
|
367 Surveillez l'outil. Devenez un gourou.
|
|
368 .SH VERSION
|
|
369 Cette 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
|
|
377 make money and share with me,
|
|
378 .br
|
|
379 lose money and don't ask me."
|
|
380 .PP
|
|
381 Distribution libre en citant l'auteur,
|
|
382 .br
|
|
383 gagnez de l'argent, pensez à moi,
|
|
384 .br
|
|
385 perdez de l'argent, oubliez-moi.
|
|
386 .PP
|
|
387 Page 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
|
|
391 Modifications mineures par Bram Moolenaar.
|
|
392 Édité par Juergen Weigert.
|
|
393 .SH TRADUCTION
|
|
394 Cette page de manuel a été traduite par David Blanchet
|
|
395 <david.blanchet@free.fr> 2004-12-24.
|