1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
|
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>dos2unix 7.4.0 - Convertit les fichiers textes du format DOS/Mac vers Unix et inversement</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:ASSI@cygwin.nonet" />
</head>
<body>
<ul id="index">
<li><a href="#NOM">NOM</a></li>
<li><a href="#SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#OPTIONS">OPTIONS</a></li>
<li><a href="#MODE-MAC">MODE MAC</a></li>
<li><a href="#MODES-DE-CONVERSION">MODES DE CONVERSION</a></li>
<li><a href="#UNICODE">UNICODE</a>
<ul>
<li><a href="#Codages">Codages</a></li>
<li><a href="#Conversion">Conversion</a></li>
<li><a href="#Marque-dordre-des-octets">Marque d'ordre des octets</a></li>
<li><a href="#Noms-de-fichiers-unicode-sous-Windows">Noms de fichiers unicode sous Windows</a></li>
<li><a href="#Exemples-Unicode">Exemples Unicode</a></li>
</ul>
</li>
<li><a href="#GB18030">GB18030</a></li>
<li><a href="#EXEMPLES">EXEMPLES</a></li>
<li><a href="#CONVERSIONS-RCURSIVES">CONVERSIONS RÉCURSIVES</a></li>
<li><a href="#PARAMTRES-LINGUISTIQUES">PARAMÈTRES LINGUISTIQUES</a></li>
<li><a href="#VALEUR-DE-RETOUR">VALEUR DE RETOUR</a></li>
<li><a href="#STANDARDS">STANDARDS</a></li>
<li><a href="#AUTEURS">AUTEURS</a></li>
<li><a href="#VOIR-AUSSI">VOIR AUSSI</a></li>
</ul>
<h1 id="NOM">NOM</h1>
<p>dos2unix - Convertit les fichiers textes du format DOS/Mac vers Unix et inversement</p>
<h1 id="SYNOPSIS">SYNOPSIS</h1>
<pre><code> dos2unix [options] [FICHIER …] [-n FICHIER_ENTRÉE FICHIER_SORTIE …]
unix2dos [options] [FICHIER …] [-n FICHIER_ENTRÉE FICHIER_SORTIE …]</code></pre>
<h1 id="DESCRIPTION">DESCRIPTION</h1>
<p>Le package Dos2unix inclut les utilitaires <code>dos2unix</code> et <code>unix2dos</code> pour convertir des fichiers textes au format DOS ou Mac vers le format Unix et inversement.</p>
<p>Dans les fichiers textes DOS/Windows, un saut de ligne est une combinaison de deux caractères: un retour de chariot (CR) suivi d'un saut de ligne (LF). Dans les fichiers textes Unix, le saut de ligne est un seul caractère: le saut de ligne (LF). Les fichiers textes Mac, avant Mac OS X, utilisaient le retour chariot (CR) comme seul caractère. De nos jours, Mac OS utilise le même style de saut de ligne que Unix (LF).</p>
<p>Outre les sauts de lignes, Dos2unix convertit aussi le codage des fichiers. Quelques codes page DOS peuvent être convertis en Latin-1 sous Unix. L'Unicode des fichiers Windows (UTF-16) peut être converti en Unicode Unix (UTF-8).</p>
<p>Les fichiers binaires sont automatiquement ignorés à moins que la conversion soit forcée.</p>
<p>Les fichiers non réguliers tels que les répertoires et les FIFOs sont automatiquement ignorés.</p>
<p>Les liens symboliques et leur cible sont, par défaut, inchangés. En option, les liens symboliques peuvent être remplacés ou, au choix, la sortie peut être écrite dans la cible du lien symbolique. Écrire dans la cible d'un lien symbolique n'est pas supporté sous Windows.</p>
<p>Dos2unix a été conçu comme dos2unix sous SunOS/Solaris. Il y a une différence importante avec la version originale de SunOS/Solaris. Cette version effectue les conversions en place (ancien mode de fichier) tandis que la version originale de SunOS/Solaris ne supporte que la conversion par paire (nouveau mode de fichier). Voyez aussi les options <code>-o</code> et <code>-n</code>. Une autre différence est que SunOS/Solaris utilise par défaut le mode de conversion <i>iso</i> tandis que cette version utilise par défaut le mode de conversion <i>ascii</i>.</p>
<h1 id="OPTIONS">OPTIONS</h1>
<dl>
<dt id="pod"><b>--</b></dt>
<dd>
<p>Traites toutes les options à sa suite comme étant des noms de fichiers. Utilisez cette option si vous voulez convertir des fichiers dont le nom commence par un tiret. Par exemple, pour convertir un fichier nommé <span style="white-space: nowrap;">« -foo »,</span> vous pouvez utiliser cette commande:</p>
<pre><code> dos2unix -- -foo</code></pre>
<p>Ou dans le style des nouveaux fichiers:</p>
<pre><code> dos2unix -n -- -foo sortie.txt</code></pre>
</dd>
<dt id="allow-chown"><b>--allow-chown</b></dt>
<dd>
<p>Autoriser le changement de propriétaire dans l'ancien mode de fichier.</p>
<p>Quand cette option est utilisée, la conversion n'est pas interrompue si l'utilisateur ou le groupe propriétaire du fichier original ne peut pas être préservé dans l'ancien mode de fichier. La conversion continuera et le fichier converti aura le même nouveau propriétaire que si il avait été converti par le nouveau mode de fichier. Voyez aussi les options <code>-o</code> et <code>-n</code>. Cette option est uniquement disponible si dos2unix dispose des fonctionnalités pour préserver l'utilisateur ou le groupe propriétaire des fichiers.</p>
</dd>
<dt id="ascii"><b>-ascii</b></dt>
<dd>
<p>Convertit uniquement les sauts de lignes. C'est le mode de conversion par défaut.</p>
</dd>
<dt id="iso"><b>-iso</b></dt>
<dd>
<p>Convertit le jeu de caractères du DOS vers ISO-8859-1. Voyez aussi la section des MODES DE CONVERSION.</p>
</dd>
<dt id="pod-1252"><b>-1252</b></dt>
<dd>
<p>Utilise le code page 1252 de Windows (Europe de l'ouest).</p>
</dd>
<dt id="pod-437"><b>-437</b></dt>
<dd>
<p>Utilise le code page 437 du DOS (US). C'est le code page par défaut pour les conversions ISO.</p>
</dd>
<dt id="pod-850"><b>-850</b></dt>
<dd>
<p>Utilise le code page 850 du DOS (Europe de l'ouest).</p>
</dd>
<dt id="pod-860"><b>-860</b></dt>
<dd>
<p>Utilise le code page 860 du DOS (portugais).</p>
</dd>
<dt id="pod-863"><b>-863</b></dt>
<dd>
<p>Utilise le code page 863 du DOS (français canadien).</p>
</dd>
<dt id="pod-865"><b>-865</b></dt>
<dd>
<p>Utilise le code page 865 du DOS (nordique).</p>
</dd>
<dt id="pod-7"><b>-7</b></dt>
<dd>
<p>Convertit les caractères 8 bits vers l'espace 7 bits.</p>
</dd>
<dt id="b---keep-bom"><b>-b, --keep-bom</b></dt>
<dd>
<p>Conserve la marque d'ordre des octets (BOM). Si le fichier d'entrée a une BOM, elle est écrite dans le fichier de sortie. C'est le comportement par défaut quand les sauts de lignes sont convertis au format DOS. Consultez aussi l'option <code>-r</code>.</p>
</dd>
<dt id="c---convmode-MODE_CONV"><b>-c, --convmode MODE_CONV</b></dt>
<dd>
<p>Change le mode de conversion. MODE_CONV prend l'une des valeurs: <i>ascii</i>, <i>7bit</i>, <i>iso</i>, <i>mac</i>. Ascii est la valeur par défaut.</p>
</dd>
<dt id="D---display-enc-ENCODAGE"><b>-D, --display-enc ENCODAGE</b></dt>
<dd>
<p>Choisi l'encodage des textes affichés. L'ENCODAGE peut être : <i>ansi</i>, <i>unicode</i>, <i>unicodebom</i>, <i>utf8</i>, <i>utf8bom</i>. La valeur par défaut est ansi.</p>
<p>Cette option est uniquement disponible dans dos2unix pour Windows avec support pour les noms de fichiers Unicode. Cette option n'a aucun effet sur les noms de fichiers lus et écrits. Son effet se limite à leur affichage.</p>
<p>Il existe plusieurs méthodes pour afficher du texte dans une console Windows selon l'encodage du texte. Elles ont toutes leurs propres avantages et désavantages.</p>
<dl>
<dt id="ansi"><b>ansi</b></dt>
<dd>
<p>La méthode par défaut de dos2unix est d'utiliser du texte encodé en ANSI. Elle a l'avantage d'être rétro compatible. Elle fonctionne avec des polices raster ou TrueType. Dans certaines régions, vous pouvez avoir besoin d'utiliser la commande <code>chcp</code> pour remplacer le code page DOS OEM actif par le code ANSI système de Windows car dos2unix utilise le code page système de Windows.</p>
<p>Le désavantage de ansi est que les noms de fichiers internationaux avec des caractères en dehors du code page système par défaut ne sont pas affichés correctement. Vous verrez un point d'interrogation ou un mauvais symbole à leur place. Cette méthode est acceptable si vous ne travaillez pas avec des noms de fichiers étrangers.</p>
</dd>
<dt id="unicode-unicodebom"><b>unicode, unicodebom</b></dt>
<dd>
<p>L'avantage de l'encodage unicode (le nom de Windows pour UTF-16) est que le texte est habituellement affiché correctement. Il n'est pas nécessaire de changer le code page actif. Vous pouvez avoir besoin de remplacer la police de la console par une police TrueType pour afficher les caractères internationaux correctement. Lorsqu'un caractère n'est pas inclus dans la police TrueType, il sera généralement remplacé par un petit carré, parfois avec un point d'interrogation à l'intérieur.</p>
<p>Lorsque vous utilisez la console ConEmu, les textes sont affichés correctement car ConEmu sélectionne automatiquement une bonne police.</p>
<p>Le désavantage de unicode est qu'il n'est pas compatible avec ASCII. La sortie n'est pas facile à gérer quand vous la redirigez vers un autre programme.</p>
<p>Quand la méthode <code>unicodebom</code> est utilisée, le texte Unicode est précédé d'une BOM (Byte Order Mark=marque d'ordre des octets). Une BOM est nécessaire pour la redirection correcte ou le pipelining dans PowerShell.</p>
</dd>
<dt id="utf8-utf8bom"><b>utf8, utf8bom</b></dt>
<dd>
<p>L'avantage de utf8 est qu'il est compatible avec ASCII. Vous devez utiliser une police TrueType dans la console. Avec une police TrueType, le texte est affiché comme avec un encodage <code>unicode</code>.</p>
<p>Le désavantage est que, si vous utilisez la police raster par défaut, tous les caractères non ASCII sont mal affichés. Pas uniquement les noms de fichiers <span style="white-space: nowrap;">unicode !</span> Les messages traduits deviennent inintelligibles. Sous Windows configuré pour une région de l'est de l'Asie, vous pouvez observer énormément de scintillements dans la console quand des messages sont affichés.</p>
<p>Dans une console ConEmu, l'encodage utf8 fonctionne bien.</p>
<p>Quand la méthode <code>utf8bom</code> est utilisée, le texte UTF-8 est précédé d'une BOM (Byte Order Mark=marque d'ordre des octets). Une BOM est nécessaire pour la redirection correcte ou le pipelining dans PowerShell.</p>
</dd>
</dl>
<p>L'encodage par défaut peut être changé en assignant la valeur <code>unicode</code>, <code>unicodebom</code>, <code>utf8</code> ou <code>utf8bom</code> à la variable d'environnement DOS2UNIX_DISPLAY_ENC.</p>
</dd>
<dt id="f---force"><b>-f, --force</b></dt>
<dd>
<p>Force la conversion de fichiers binaires.</p>
</dd>
<dt id="gb---gb18030"><b>-gb, --gb18030</b></dt>
<dd>
<p>Sous Windows, les fichiers UTF-16 sont convertis en UTF-8 par défaut sans considération pour les paramètres de la localisation. Utilisez cette option pour convertir UTF-16 en GB18030. Cette option n'est disponible que sous Windows. Consultez aussi la section GB18030.</p>
</dd>
<dt id="h---help"><b>-h, --help</b></dt>
<dd>
<p>Affiche l'aide et s'arrête.</p>
</dd>
<dt id="i-FANIONS---info-FANIONS-FICHIER"><b>-i[FANIONS], --info[=FANIONS] FICHIER …</b></dt>
<dd>
<p>Affiche les informations du fichier. Aucune conversion n'est réalisée.</p>
<p>Les informations suivantes sont affichées dans cet ordre: le nombre de sauts de ligne DOS, le nombre de sauts de ligne Unix, le nombre de sauts de ligne Mac, la marque d'ordre des octets, texte ou binaire, nom du fichier.</p>
<p>Exemple de <span style="white-space: nowrap;">sortie :</span></p>
<pre><code> 6 0 0 no_bom text dos.txt
0 6 0 no_bom text unix.txt
0 0 6 no_bom text mac.txt
6 6 6 no_bom text mixed.txt
50 0 0 UTF-16LE text utf16le.txt
0 50 0 no_bom text utf8unix.txt
50 0 0 UTF-8 text utf8dos.txt
2 418 219 no_bom binary dos2unix.exe</code></pre>
<p>Notez qu'un fichier binaire peut parfois être considéré à tord comme un fichier texte. Voyez aussi l'option <code>-s</code>.</p>
<p>Des fanions facultatifs peuvent être ajoutés pour changer la sortie. Un ou plusieurs fanions peuvent être ajoutés.</p>
<dl>
<dt id="pod0"><b>0</b></dt>
<dd>
<p>Afficher les lignes d'information du fichier suivies d'un caractère nul au lieu d'un saut de ligne. Cela permet d'interpréter correctement les noms de fichiers avec des espaces ou des guillemets quand le fanion c est utilisé. Utilisez ce fanion avec les options <code>-0</code> ou <code>--null</code> de xargs(1).</p>
</dd>
<dt id="d"><b>d</b></dt>
<dd>
<p>Affiche le nombre de sauts de ligne DOS.</p>
</dd>
<dt id="u"><b>u</b></dt>
<dd>
<p>Affiche le nombre de sauts de ligne Unix.</p>
</dd>
<dt id="m"><b>m</b></dt>
<dd>
<p>Affiche le nombre de sauts de ligne Mac.</p>
</dd>
<dt id="b"><b>b</b></dt>
<dd>
<p>Afficher la marque d'ordre des octets.</p>
</dd>
<dt id="t"><b>t</b></dt>
<dd>
<p>Affiche si le fichier est texte ou binaire.</p>
</dd>
<dt id="c"><b>c</b></dt>
<dd>
<p>Affiche uniquement les fichiers qui seraient convertis.</p>
<p>Avec le fanion <code>c</code>, dos2unix n'affichera que les fichiers contenant des sauts de ligne DOS alors que unix2dos n'affichera que les noms des fichiers aillant des sauts de ligne Unix.</p>
</dd>
<dt id="h"><b>h</b></dt>
<dd>
<p>Afficher un en-tête.</p>
</dd>
<dt id="p"><b>p</b></dt>
<dd>
<p>Montrer les noms des fichiers sans le chemin.</p>
</dd>
</dl>
<p>Exemples:</p>
<p>Afficher les informations pour tous les fichier <span style="white-space: nowrap;">*.txt :</span></p>
<pre><code> dos2unix -i *.txt</code></pre>
<p>Afficher uniquement le nombre de sauts de ligne DOS et <span style="white-space: nowrap;">Unix :</span></p>
<pre><code> dos2unix -idu *.txt</code></pre>
<p>Montrer uniquement la marque d'ordre des <span style="white-space: nowrap;">octets :</span></p>
<pre><code> dos2unix --info=b *.txt</code></pre>
<p>Liste les fichiers qui ont des sauts de ligne DOS :</p>
<pre><code> dos2unix -ic *.txt</code></pre>
<p>Liste les fichiers qui ont des sauts de ligne Unix :</p>
<pre><code> unix2dos -ic *.txt</code></pre>
<p>Ne converti que les fichiers qui ont des sauts de lignes DOS et laisse les autres fichiers inchangés:</p>
<pre><code> dos2unix -ic0 *.txt | xargs -0 dos2unix</code></pre>
<p>Trouve les fichiers texte qui ont des sauts de ligne DOS :</p>
<pre><code> find -name '*.txt' -print0 | xargs -0 dos2unix -ic</code></pre>
</dd>
<dt id="k---keepdate"><b>-k, --keepdate</b></dt>
<dd>
<p>La date du fichier de sortie est la même que celle du fichier d'entrée.</p>
</dd>
<dt id="L---license"><b>-L, --license</b></dt>
<dd>
<p>Affiche la licence du programme.</p>
</dd>
<dt id="l---newline"><b>-l, --newline</b></dt>
<dd>
<p>Ajoute des sauts de lignes additionnels.</p>
<p><b>dos2unix</b>: Seuls les sauts de lignes du DOS sont changés en deux sauts de lignes de Unix. En mode Mac, seuls les sauts de lignes Mac sont changés en deux sauts de lignes Unix.</p>
<p><b>unix2dos</b>: Seuls les sauts de lignes Unix sont changés en deux sauts de lignes du DOS. En mode Mac, les sauts de lignes Unix sont remplacés par deux sauts de lignes Mac.</p>
</dd>
<dt id="m---add-bom"><b>-m, --add-bom</b></dt>
<dd>
<p>Écrit une marque d'ordre des octets (BOM) dans le fichier de sortie. Par défaut une BOM UTF-8 est écrite.</p>
<p>Lorsque le fichier d'entrée est en UTF-16 et que l'option <code>-u</code> est utilisée, une BOM UTF-16 est écrite.</p>
<p>N'utilisez jamais cette option quand l'encodage du fichier de sortie n'est ni UTF-8 ni UTF-16 ni GB18030. Consultez également la section UNICODE.</p>
</dd>
<dt id="n---newfile-FICHIER_ENTRE-FICHIER_SORTIE"><b>-n, --newfile FICHIER_ENTRÉE FICHIER_SORTIE …</b></dt>
<dd>
<p>Nouveau mode de fichiers. Convertit le fichier FICHER_ENTRÉE et écrit la sortie dans le fichier FICHIER_SORTIE. Les noms des fichiers doivent être indiqués par paires. Les caractères de remplacement <i>ne</i> doivent <i>pas</i> être utilisés ou vous <i>perdrez</i> vos fichiers.</p>
<p>La personne qui démarre la conversion dans le nouveau mode (pairé) des fichiers sera le propriétaire du fichier converti. Les permissions de lecture/écriture du nouveau fichier seront les permissions du fichier original moins le umask(1) de la personne qui exécute la conversion.</p>
</dd>
<dt id="no-allow-chown"><b>--no-allow-chown</b></dt>
<dd>
<p>Ne pas autoriser le changement du propriétaire du fichier dans l'ancien mode de fichier (par défaut).</p>
<p>Interrompt la conversion si l'utilisateur ou le groupe propriétaire du fichier original ne peuvent pas être préservés dans l'ancien mode de fichier. Voyez aussi les options <code>-o</code> et <code>-n</code>. Cette option est uniquement présente si dos2unix dispose des fonctionnalités pour préserver l'utilisateur ou le groupe propriétaire des fichiers.</p>
</dd>
<dt id="o---oldfile-FICHIER"><b>-o, --oldfile FICHIER …</b></dt>
<dd>
<p>Ancien mode de fichiers. Convertit le fichier FICHIER et écrit la sortie dedans. Le programme fonctionne dans ce mode par défaut. Les noms avec des caractères de remplacement peuvent être utilisés.</p>
<p>Dans l'ancien mode (en place) des fichiers, les fichiers convertis ont le même propriétaire, groupe et permissions lecture/écriture que le fichier original. Idem quand le fichier est converti par un utilisateur qui a la permission d'écrire dans le fichier (par exemple, root). La conversion est interrompue si il n'est pas possible de conserver les valeurs d'origine. Le changement de propriétaire pourrait signifier que le propriétaire original n'est plus en mesure de lire le fichier. Le changement de groupe pourrait être un risque pour la sécurité. Le fichier pourrait être rendu accessible en lecture par des personnes à qui il n'est pas destiné. La conservation du propriétaire, du groupe et des permissions de lecture/écriture n'est supportée que sous Unix.</p>
<p>Pour vérifier si dos2unix dispose des fonctions pour préserver l'utilisateur et le groupe propriétaire du fichier, tapez <code>dos2unix -V</code>.</p>
<p>La conversion est toujours réalisée via un fichier temporaire. Quand une erreur survient au milieu de la conversion, le fichier temporaire est effacé et le fichier original reste inchangé. Quand la conversion réussi, le fichier original est remplacé par le fichier temporaire. Vous pourriez avoir la permission d'écrire dans le fichier original mais ne pas avoir la permission de remplacer les propriétés de l'utilisateur et du groupe propriétaires sur le fichier temporaire telles qu'elles sont définies sur le fichier original. Cela signifie que vous n'êtes pas en mesure de préserver l'utilisateur ou le groupe propriétaire du fichier original. Dans ce cas, vous pouvez utiliser l'option <code>--allow-chown</code> pour continuer la conversion.</p>
<pre><code> dos2unix --allow-chown toto.txt</code></pre>
<p>Une autre option consiste à utiliser le nouveau mode de fichier:</p>
<pre><code> dos2unix -n toto.txt toto.txt</code></pre>
<p>L'avantage de l'option <code>--allow-chown</code> est que vous pouvez utiliser des caractères de remplacement et les propriétaires seront préservés dans la mesure du possible.</p>
</dd>
<dt id="q---quiet"><b>-q, --quiet</b></dt>
<dd>
<p>Mode silencieux. Supprime les avertissements et les messages. La valeur de sortie est zéro sauf quand de mauvaises options sont utilisées sur la ligne de commande.</p>
</dd>
<dt id="r---remove-bom"><b>-r, --remove-bom</b></dt>
<dd>
<p>Supprime la marque d'ordre des octets (BOM). N'écrit pas la BOM dans le fichier de sortie. Ceci est le comportement par défaut lorsque les sauts de lignes sont convertis au format Unix. Consultez aussi l'option <code>-b</code>.</p>
</dd>
<dt id="s---safe"><b>-s, --safe</b></dt>
<dd>
<p>Ignore les fichiers binaires (par défaut).</p>
<p>Ignorer les fichiers binaires sert à éviter les erreurs accidentelles. Attention que la détection de fichiers binaires n'est pas fiable à 100%. Les fichiers en entrée sont analysés pour y trouver des symboles binaires qui ne sont habituellement pas rencontrés dans des fichiers textes. Il est cependant possible qu'un fichier binaire ne contienne que des caractères textes normaux. Un tel fichier serait erronément traité comme un fichier texte.</p>
</dd>
<dt id="u---keep-utf16"><b>-u, --keep-utf16</b></dt>
<dd>
<p>Conserve l'encodage UTF-16 original du fichier d'entrée. Le fichier de sortie sera écrit dans le même encodage UTF-16 (petit ou grand boutien) que le fichier d'entrée. Ceci évite la transformation en UTF-8. Une BOM UTF-16 sera écrite en conséquent. Cette option peut être désactivée avec l'option <code>-ascii</code>.</p>
</dd>
<dt id="ul---assume-utf16le"><b>-ul, --assume-utf16le</b></dt>
<dd>
<p>Suppose que le fichier d'entrée est au format UTF-16LE.</p>
<p>Quand il y a un indicateur d'ordre des octets dans le fichier d'entrée, l'indicateur a priorité sur cette option.</p>
<p>Si vous vous êtes trompé sur le format du fichier d'entrée (par exemple, ce n'était pas un fichier UTF16-LE) et que la conversion réussi, vous obtiendrez un fichier UTF-8 contenant le mauvais texte. Vous pouvez récupérer le fichier original avec iconv(1) en convertissant le fichier de sortie UTF-8 vers du UTF-16LE.</p>
<p>La présupposition de l'UTF-16LE fonctionne comme un <i>mode de conversion</i>. En utilisant le mode <i>ascii</i> par défaut, UTF-16LE n'est plus présupposé.</p>
</dd>
<dt id="ub---assume-utf16be"><b>-ub, --assume-utf16be</b></dt>
<dd>
<p>Suppose que le fichier d'entrée est au format UTF-16BE.</p>
<p>Cette option fonctionne comme l'option <code>-ul</code>.</p>
</dd>
<dt id="v---verbose"><b>-v, --verbose</b></dt>
<dd>
<p>Affiche des messages verbeux. Des informations supplémentaires sont affichées à propos des marques d'ordre des octets et du nombre de sauts de lignes convertis.</p>
</dd>
<dt id="F---follow-symlink"><b>-F, --follow-symlink</b></dt>
<dd>
<p>Suit les liens symboliques et convertit les cibles.</p>
</dd>
<dt id="R---replace-symlink"><b>-R, --replace-symlink</b></dt>
<dd>
<p>Remplace les liens symboliques par les fichiers convertis (les fichiers cibles originaux restent inchangés).</p>
</dd>
<dt id="S---skip-symlink"><b>-S, --skip-symlink</b></dt>
<dd>
<p>Ne change pas les liens symboliques ni les cibles (par défaut).</p>
</dd>
<dt id="V---version"><b>-V, --version</b></dt>
<dd>
<p>Affiche les informations de version puis arrête.</p>
</dd>
</dl>
<h1 id="MODE-MAC">MODE MAC</h1>
<p>En mode normal, les sauts de lignes sont convertis du DOS vers Unix et inversement. Les sauts de lignes Mac ne sont pas convertis.</p>
<p>En mode Mac, les sauts de lignes sont convertis du format Mac au format Unix et inversement. Les sauts de lignes DOS ne sont pas changés.</p>
<p>Pour fonctionner en mode Mac, utilisez l'option en ligne de commande <code>-c mac</code> ou utilisez les commandes <code>mac2unix</code> ou <code>unix2mac</code>.</p>
<h1 id="MODES-DE-CONVERSION">MODES DE CONVERSION</h1>
<dl>
<dt id="ascii1"><b>ascii</b></dt>
<dd>
<p>En mode <code>ascii</code>, seuls les sauts de lignes sont convertis. Ceci est le mode de conversion par défaut.</p>
<p>Bien que le nom de ce mode soit ASCII, qui est un standard 7 bits, ce mode travail en réalité sur 8 bits. Utilisez toujours ce mode lorsque vous convertissez des fichiers Unicode UTF-8.</p>
</dd>
<dt id="bit"><b>7bit</b></dt>
<dd>
<p>Dans ce mode, tous les caractères 8 bits non ASCII (avec des valeurs entre 128 et 255) sont remplacés par une espace 7 bits.</p>
</dd>
<dt id="iso1"><b>iso</b></dt>
<dd>
<p>Les caractères sont convertis entre un jeu de caractères DOS (code page) et le jeu de caractères ISO-8859-1 (Latin-1) de Unix. Les caractères DOS sans équivalent ISO-8859-1, pour lesquels la conversion n'est pas possible, sont remplacés par un point. La même chose est valable pour les caractères ISO-8859-1 sans équivalent DOS.</p>
<p>Quand seule l'option <code>-iso</code> est utilisée, dos2unix essaie de déterminer le code page actif. Quand ce n'est pas possible, dos2unix utilise le code page CP437 par défaut qui est surtout utilisé aux USA. Pour forcer l'utilisation d'un code page spécifique, utilisez les options <code>-437</code> (US), <code>-850</code> (Europe de l'ouest), <code>-860</code> (portugais), <code>-863</code> (français canadien) ou <code>-865</code> (nordique). Le code page CP1252 de Windows (Europe de l'ouest) est également supporté avec l'option <code>-1252</code>. Pour d'autres codes pages, utilisez dos2unix avec iconv(1). Iconv supporte une longue liste de codages de caractères.</p>
<p>N'utilisez jamais la conversion ISO sur des fichiers textes Unicode. Cela va corrompre les fichiers encodés en UTF-8.</p>
<p>Quelques exemples:</p>
<p>Convertir du code page par défaut du DOS au Latin-1 Unix :</p>
<pre><code> dos2unix -iso -n entrée.txt sortie.txt</code></pre>
<p>Convertir du CP850 du DOS au Latin-1 Unix :</p>
<pre><code> dos2unix -850 -n entrée.txt sortie.txt</code></pre>
<p>Convertir du CP1252 de Windows au Latin-1 de Unix :</p>
<pre><code> dos2unix -1252 -n entrée.txt sortie.txt</code></pre>
<p>Convertir le CP1252 de Windows en UTF-8 de Unix (Unicode) :</p>
<pre><code> iconv -f CP1252 -t UTF-8 entrée.txt | dos2unix > sortie.txt</code></pre>
<p>Convertir du Latin-1 de Unix au code page par défaut de DOS :</p>
<pre><code> unix2dos -iso -n entrée.txt sortie.txt</code></pre>
<p>Convertir le Latin-1 de Unix en CP850 du DOS :</p>
<pre><code> unix2dos -850 -n entrée.txt sortie.txt</code></pre>
<p>Convertir le Latin-1 de Unix en CP1252 de Windows :</p>
<pre><code> unix2dos -1252 -n entrée.txt sortie.txt</code></pre>
<p>Convertir le UTF-8 de Unix (Unicode) en CP1252 de Windows :</p>
<pre><code> unix2dos < entrée.txt | iconv -f UTF-8 -t CP1252 > sortie.txt</code></pre>
<p>Consultez aussi <a href="http://czyborra.com/charsets/codepages.html">http://czyborra.com/charsets/codepages.html</a> et <a href="http://czyborra.com/charsets/iso8859.html">http://czyborra.com/charsets/iso8859.html</a>.</p>
</dd>
</dl>
<h1 id="UNICODE">UNICODE</h1>
<h2 id="Codages">Codages</h2>
<p>Il existe plusieurs codages Unicode. Sous Unix et Linux, les fichiers sont généralement codés en UTF-8. Sous Windows, les fichiers textes Unicode peuvent être codés en UTF-8, UTF-16 ou UTF-16 gros boutien mais ils sont majoritairement codés au format UTF-16.</p>
<h2 id="Conversion">Conversion</h2>
<p>Les fichiers textes Unicode peuvent avoir des sauts de lignes DOS, Unix ou Mac, tout comme les fichiers textes normaux.</p>
<p>Toutes les versions de dos2unix et unix2dos peuvent convertir des fichiers codés en UTF-8 car UTF-8 a été conçu pour être rétro-compatible avec l'ASCII.</p>
<p>Dos2unix et unix2dos, avec le support pour l'Unicode UTF-16, peuvent lire les fichiers textes codés sous forme petit boutien ou gros boutien. Pour savoir si dos2unix a été compilé avec le support UTF-16 tapez <code>dos2unix -V</code>.</p>
<p>Sous Unix/Linux, les fichiers encodés en UTF-16 sont convertis vers l'encodage des caractères de la localisation. Utilisez locale(1) pour découvrir quel encodage de caractères est utilisé. Lorsque la conversion n'est pas possible, une erreur de conversion est produite et le fichier est abandonné.</p>
<p>Sous Windows, les fichiers UTF-16 sont convertis par défaut en UTF-8. Les fichiers textes formatés en UTF-8 sont bien supportés sous Windows et Unix/Linux.</p>
<p>Les codages UTF-16 et UTF-8 sont parfaitement compatibles. Il n'y a pas de pertes lors de la conversion. Lorsqu'une erreur de conversion UTF-16 vers UTF-8 survient, par exemple, quand le fichier d'entrée UTF-16 contient une erreur, le fichier est ignoré.</p>
<p>Quand l'option <code>-u</code> est utilisée, le fichier de sortie est écrit dans le même encodage UTF-16 que le fichier d'entrée. L'option <code>-u</code> empêche la conversion en UTF-8.</p>
<p>Dos2unix et unix2dos n'ont pas d'option pour convertir des fichiers UTF-8 en UTF-16.</p>
<p>Les modes de conversion ISO et 7 bits ne fonctionnent pas sur des fichiers UTF-16.</p>
<h2 id="Marque-dordre-des-octets">Marque d'ordre des octets</h2>
<p>Les fichiers textes Unicode sous Windows on généralement un indicateur d'ordre des octets (BOM) car de nombreux programmes Windows (y compris Notepad) ajoutent cet indicateur par défaut. Consultez aussi <a href="http://fr.wikipedia.org/wiki/Indicateur_d%27ordre_des_octets">http://fr.wikipedia.org/wiki/Indicateur_d%27ordre_des_octets</a>.</p>
<p>Sous Unix, les fichiers Unicodes n'ont habituellement pas de BOM. Il est supposé que les fichiers textes sont codés selon le codage de l'environnement linguistique.</p>
<p>Dos2unix ne peut détecter que le fichier est au format UTF-16 si le fichier n'a pas de BOM. Quand le fichier UTF-16 n'a pas cet indicateur, dos2unix voit le fichier comme un fichier binaire.</p>
<p>Utilisez l'option <code>-ul</code> ou <code>-ub</code> pour convertir un fichier UTF-16 sans BOM.</p>
<p>Dos2unix, par défaut, n'écrit pas de BOM dans le fichier de sortie. Avec l'option <code>-b</code>, Dos2unix écrit une BOM quand le fichier d'entrée a une BOM.</p>
<p>Unix2dos écrit par défaut une BOM dans le fichier de sortie quand le fichier d'entrée a une BOM. Utilisez l'option <code>-r</code> pour supprimer la BOM.</p>
<p>Dos2unix et unix2dos écrivent toujours une BOM quand l'option <code>-m</code> est utilisée.</p>
<h2 id="Noms-de-fichiers-unicode-sous-Windows">Noms de fichiers unicode sous Windows</h2>
<p>Dos2unix supporte, en option, la lecture et l'écriture de noms de fichiers Unicode dans la ligne de commande de Windows. Cela signifie que dos2unix peut ouvrir des fichiers qui ont, dans leur nom, des caractères n'appartenant pas au code page système ANSI par défaut. Pour voir si dos2unix pour Windows a été compilé avec le support des noms de fichiers Unicode, tapez <code>dos2unix -V</code>.</p>
<p>Il y a quelques soucis avec l'affichage de noms de fichiers Unicode dans une console Windows. Voyez l'option <code>-D</code>, <code>--display-enc</code>. Les noms de fichiers peuvent être mal affichés dans la console mais les fichiers seront écrits avec les bons noms.</p>
<h2 id="Exemples-Unicode">Exemples Unicode</h2>
<p>Convertir de l'UTF-16 Windows (avec BOM) vers l'UTF-8 de Unix :</p>
<pre><code> dos2unix -n entrée.txt sortie.txt</code></pre>
<p>Convertir de l'UTF-16LE de Windows (sans BOM) vers l'UTF-8 de Unix :</p>
<pre><code> dos2unix -ul -n entrée.txt sortie.txt</code></pre>
<p>Convertir de l'UTF-8 de Unix vers l'UTF-8 de Windows avec BOM :</p>
<pre><code> unix2dos -m -n entrée.txt sortie.txt</code></pre>
<p>Convertir de l'UTF-8 de Unix vers l'UTF-16 de Windows :</p>
<pre><code> unix2dos < entrée.txt | iconv -f UTF-8 -t UTF-16 > sortie.txt</code></pre>
<h1 id="GB18030">GB18030</h1>
<p>GB18030 est un standard du gouvernement chinois. Tout logiciel vendu en Chine doit officiellement supporter un sous ensemble obligatoire du standard GB18030. Consultez <a href="http://fr.wikipedia.org/wiki/GB_18030">http://fr.wikipedia.org/wiki/GB_18030</a>.</p>
<p>GB18030 est entièrement compatible avec Unicode et peut être considéré comme étant un format de transformation unicode. Comme UTF-8, GB18030 est compatible avec ASCII. GB18030 est aussi compatible avec le code page 936 de Windows aussi connu comme GBK.</p>
<p>Sous Unix/Linux, les fichiers UTF-16 sont convertis en GB18030 quand l'encodage de l'environnement linguistique est GB18030. Notez que cela ne fonctionnera que si l'environnement linguistique est supporté par le système. Utilisez la commande <code>locale -a</code> pour obtenir la liste des environnements linguistiques supportés.</p>
<p>Sous Windows, vous avez besoin de l'option <code>-gb</code> pour convertir UTF-16 en GB18030.</p>
<p>Les fichiers encodés en GB18030 peuvent avoir une marque d'ordre des octets, comme les fichiers Unicode.</p>
<h1 id="EXEMPLES">EXEMPLES</h1>
<p>Lire l'entrée depuis <span style="white-space: nowrap;">« stdin »</span> et écrire la sortie vers <span style="white-space: nowrap;">« stdout » :</span></p>
<pre><code> dos2unix < a.txt
cat a.txt | dos2unix</code></pre>
<p>Convertir et remplacer a.txt. Convertir et remplace b.txt :</p>
<pre><code> dos2unix a.txt b.txt
dos2unix -o a.txt b.txt</code></pre>
<p>Convertir et remplacer a.txt en mode de conversion ascii :</p>
<pre><code> dos2unix a.txt</code></pre>
<p>Convertir et remplacer a.txt en mode de conversion ascii. Convertir et remplacer b.txt en mode de conversion 7 bits :</p>
<pre><code> dos2unix a.txt -c 7bit b.txt
dos2unix -c ascii a.txt -c 7bit b.txt
dos2unix -ascii a.txt -7 b.txt</code></pre>
<p>Convertir a.txt depuis le format Mac vers le format Unix :</p>
<pre><code> dos2unix -c mac a.txt
mac2unix a.txt</code></pre>
<p>Convertir a.txt du format Unix au format Mac :</p>
<pre><code> unix2dos -c mac a.txt
unix2mac a.txt</code></pre>
<p>Convertir et remplacer a.txt tout en conservant la date originale :</p>
<pre><code> dos2unix -k a.txt
dos2unix -k -o a.txt</code></pre>
<p>Convertir a.txt et écrire dans e.txt :</p>
<pre><code> dos2unix -n a.txt e.txt</code></pre>
<p>Convertir a.txt et écrire dans e.txt. La date de e.txt est la même que celle de a.txt :</p>
<pre><code> dos2unix -k -n a.txt e.txt</code></pre>
<p>Convertir et remplacer a.txt. Convertir b.txt et écrire dans e.txt :</p>
<pre><code> dos2unix a.txt -n b.txt e.txt
dos2unix -o a.txt -n b.txt e.txt</code></pre>
<p>Convertir c.txt et écrire dans e.txt. Convertir et remplacer a.txt. Convertir et remplacer b.txt. Convertir d.txt et écrire dans f.txt :</p>
<pre><code> dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt</code></pre>
<h1 id="CONVERSIONS-RCURSIVES">CONVERSIONS RÉCURSIVES</h1>
<p>Dans un shell Unix, les commandes find(1) et xargs(1) peuvent être utilisées pour exécuter dos2unix récursivement sur tous les fichiers textes dans une arborescence de répertoires. Par exemple, pour convertir tous les fichiers .txt dans les répertoires sous le répertoire courant, tapez:</p>
<pre><code> find . -name '*.txt' -print0 |xargs -0 dos2unix</code></pre>
<p>L'option <code>-print0</code> de find(1) et l'option correspondante <code>-0</code> de xargs(1) sont nécessaires quand il y a des fichiers avec des espaces ou des guillemets dans leur nom. Sinon, ces options peuvent être omises. Une autre possibilité est d'utiliser find(1) avec l'option <code>-exec</code>:</p>
<pre><code> find . -name '*.txt' -exec dos2unix {} \;</code></pre>
<p>En ligne de commande sous Windows, la commande suivante peut être utilisée :</p>
<pre><code> for /R %G in (*.txt) do dos2unix "%G"
find /R %G in </code></pre>
<p>Les utilisateurs de PowerShell peuvent utiliser la commande suivante dans le PowerShell de Windows :</p>
<pre><code> get-childitem -path . -filter '*.txt' -recurse | foreach-object {dos2unix $_.Fullname}</code></pre>
<h1 id="PARAMTRES-LINGUISTIQUES">PARAMÈTRES LINGUISTIQUES</h1>
<dl>
<dt id="LANG"><b>LANG</b></dt>
<dd>
<p>La langue principale est sélectionnée par la variable d'environnement LANG. La variable LANG est composée de plusieurs parties. La première partie est le code de la langue en minuscules. La deuxième partie est le code du pays en majuscules précédé d'un souligné. Elle est facultative. Il y a aussi une troisième partie facultative qui est le codage des caractères précédé par un point. Voici quelques exemples pour un shell au standard POSIX:</p>
<pre><code> export LANG=fr Français
export LANG=fr_CA Français, Canada
export LANG=fr_BE Français, Belgique
export LANG=es_ES Espagnol, Espagne
export LANG=es_MX Espagnol, Mexique
export LANG=en_US.iso88591 Anglais, USA, codage Latin-1
export LANG=en_GB.UTF-8 Anglais, UK, codage UTF-8</code></pre>
<p>La liste complète des codes de langues et de pays est dans le manuel de gettext: <a href="http://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html">http://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html</a></p>
<p>Sur les systèmes Unix, vous pouvez utiliser la commande locale(1) pour obtenir des informations sur l'environnement linguistique.</p>
</dd>
<dt id="LANGUE"><b>LANGUE</b></dt>
<dd>
<p>Avec la variable d'environnement LANGUAGE, vous pouvez spécifier une liste de langues prioritaires séparées par des deux-points. Dos2unix fait passer LANGUAGE avant LANG. Par exemple, pour utiliser le français avant l'anglais: <code>LANGUAGE=fr:en</code>. Vous devez d'abord activer l'environnement linguistique en assignant une valeur autre que <span style="white-space: nowrap;">« C »</span> à LANG (ou LC_ALL). Ensuite, vous pourrez utiliser la liste de priorité avec la variable LANGUAGE. Voyez également le manuel de gettext: <a href="http://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html">http://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html</a></p>
<p>Si vous sélectionnez une langue qui n'est pas disponible, vous obtiendrez des messages en anglais standard.</p>
</dd>
<dt id="DOS2UNIX_LOCALEDIR"><b>DOS2UNIX_LOCALEDIR</b></dt>
<dd>
<p>Grâce à la variable d'environnement DOS2UNIX_LOCALEDIR, la variable LOCALEDIR compilée dans l'application peut être remplacée. LOCALEDIR est utilisée pour trouver les fichiers de langue. La valeur par défaut de GNU est <code>/usr/local/share/locale</code>. L'option <b>--version</b> affiche la valeur de LOCALEDIR utilisée.</p>
<p>Exemple (shell POSIX):</p>
<pre><code> export DOS2UNIX_LOCALEDIR=$HOME/share/locale</code></pre>
</dd>
</dl>
<h1 id="VALEUR-DE-RETOUR">VALEUR DE RETOUR</h1>
<p>Zéro est retourné en cas de succès. Si une erreur système se produit, la dernière erreur système est retournée. Pour les autres erreurs, 1 est renvoyé.</p>
<p>La valeur de sortie est toujours zéro en mode silencieux sauf quand de mauvaises options sont utilisées sur la ligne de commande.</p>
<h1 id="STANDARDS">STANDARDS</h1>
<p><a href="http://fr.wikipedia.org/wiki/Fichier_texte">http://fr.wikipedia.org/wiki/Fichier_texte</a></p>
<p><a href="http://fr.wikipedia.org/wiki/Retour_chariot">http://fr.wikipedia.org/wiki/Retour_chariot</a></p>
<p><a href="http://fr.wikipedia.org/wiki/Fin_de_ligne">http://fr.wikipedia.org/wiki/Fin_de_ligne</a></p>
<p><a href="http://fr.wikipedia.org/wiki/Unicode">http://fr.wikipedia.org/wiki/Unicode</a></p>
<h1 id="AUTEURS">AUTEURS</h1>
<p>Benjamin Lin - <blin@socs.uts.edu.au>, Bernd Johannes Wuebben (mode mac2unix) - <wuebben@kde.org>, Christian Wurll (ajout de saut de ligne supplémentaire) - <wurll@ira.uka.de>, Erwin Waterlander - <waterlan@xs4all.nl> (Mainteneur)</p>
<p>Page du projet: <a href="http://waterlan.home.xs4all.nl/dos2unix.html">http://waterlan.home.xs4all.nl/dos2unix.html</a></p>
<p>Page SourceForge: <a href="http://sourceforge.net/projects/dos2unix/">http://sourceforge.net/projects/dos2unix/</a></p>
<h1 id="VOIR-AUSSI">VOIR AUSSI</h1>
<p>file(1) find(1) iconv(1) locale(1) xargs(1)</p>
</body>
</html>
|