Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | c17ef8e | 2006-03-25 21:48:58 +0000 | [diff] [blame] | 27 | .BR uuencode (1) |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 28 | et |
Bram Moolenaar | c17ef8e | 2006-03-25 21:48:58 +0000 | [diff] [blame] | 29 | .BR uudecode (1) |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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 |
tristhaus | 85f4521 | 2023-10-06 19:51:13 +0200 | [diff] [blame] | 73 | EBCDIC) correspondante. Les options \-p, \-i ne fonctionnent pas dans ce |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | 4700398 | 2021-12-05 21:54:04 +0000 | [diff] [blame] | 114 | hexdump style). |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | c9b4b05 | 2006-04-30 18:54:39 +0000 | [diff] [blame] | 121 | qu'il produit sans le tronquer. Utilisez la combinaison |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | c17ef8e | 2006-03-25 21:48:58 +0000 | [diff] [blame] | 129 | .IR \-r : |
| 130 | inverse la conversion en ajoutant |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 131 | .RI < décalage > |
| 132 | aux positions dans le fichier données dans le code hexadécimal. |
| 133 | .TP |
Bram Moolenaar | c17ef8e | 2006-03-25 21:48:58 +0000 | [diff] [blame] | 134 | .I \-s [+][\-]décalage |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 135 | Débute au |
| 136 | .RI < décalage > |
| 137 | absolu ou relatif dans fichier_entree. |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 138 | \fI+ \fRindique que le décalage est relatif à la position courante dans |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | c17ef8e | 2006-03-25 21:48:58 +0000 | [diff] [blame] | 141 | l'entrée (utilisé avec \fI+\fR, désigne la position avant la position |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | 543b7ef | 2013-06-01 14:50:56 +0200 | [diff] [blame] | 162 | ne génère aucune erreur lors de l'analyse. Les problèmes sont passés |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | c17ef8e | 2006-03-25 21:48:58 +0000 | [diff] [blame] | 180 | \fI% xxd \-i < fichier\fR |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 181 | .PP |
| 182 | .I xxd \-s \+seek |
Bram Moolenaar | c9b4b05 | 2006-04-30 18:54:39 +0000 | [diff] [blame] | 183 | peut différer de |
Bram Moolenaar | c17ef8e | 2006-03-25 21:48:58 +0000 | [diff] [blame] | 184 | .IR "xxd \-s seek" , |
| 185 | car lseek(2) est utilisé pour « revenir en arrière ». Le '+' fait une |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | c17ef8e | 2006-03-25 21:48:58 +0000 | [diff] [blame] | 204 | Convertir de fichier depuis la position 0x100 (= 1024 \- 768) du fichier. |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | ba3ff53 | 2018-11-04 14:45:49 +0100 | [diff] [blame] | 261 | 000003c: 204d 6179 2031 3939 360a 2e5c May 1996..\\ |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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'. |
Bram Moolenaar | 543b7ef | 2013-06-01 14:50:56 +0200 | [diff] [blame] | 310 | Le nombre après '\-r \-s' s'ajoute aux numéros de lignes trouvées dans le |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 311 | fichier ; les octets initiaux sont supprimés. |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 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. |
Bram Moolenaar | 543b7ef | 2013-06-01 14:50:56 +0200 | [diff] [blame] | 396 | Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com> |