e0fcace7b44fde7241419484e5c984aa3e39ae94
[platform/upstream/dos2unix.git] / man / man1 / dos2unix.1
1 .\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 .    ds C`
42 .    ds C'
43 'br\}
44 .\"
45 .\" Escape single quotes in literal strings from groff's Unicode transform.
46 .ie \n(.g .ds Aq \(aq
47 .el       .ds Aq '
48 .\"
49 .\" If the F register is turned on, we'll generate index entries on stderr for
50 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
51 .\" entries marked with X<> in POD.  Of course, you'll have to process the
52 .\" output yourself in some meaningful fashion.
53 .\"
54 .\" Avoid warning from groff about undefined register 'F'.
55 .de IX
56 ..
57 .nr rF 0
58 .if \n(.g .if rF .nr rF 1
59 .if (\n(rF:(\n(.g==0)) \{
60 .    if \nF \{
61 .        de IX
62 .        tm Index:\\$1\t\\n%\t"\\$2"
63 ..
64 .        if !\nF==2 \{
65 .            nr % 0
66 .            nr F 2
67 .        \}
68 .    \}
69 .\}
70 .rr rF
71 .\" ========================================================================
72 .\"
73 .IX Title "dos2unix 1"
74 .TH dos2unix 1 "2014-09-08" "dos2unix" "2014-09-09"
75 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
76 .\" way too many mistakes in technical documents.
77 .if n .ad l
78 .nh
79 .SH "NAME"
80 dos2unix \- DOS/Mac to Unix and vice versa text file format converter
81 .SH "SYNOPSIS"
82 .IX Header "SYNOPSIS"
83 .Vb 2
84 \&    dos2unix [options] [FILE ...] [\-n INFILE OUTFILE ...]
85 \&    unix2dos [options] [FILE ...] [\-n INFILE OUTFILE ...]
86 .Ve
87 .SH "DESCRIPTION"
88 .IX Header "DESCRIPTION"
89 The Dos2unix package includes utilities \f(CW\*(C`dos2unix\*(C'\fR and \f(CW\*(C`unix2dos\*(C'\fR to convert
90 plain text files in \s-1DOS\s0 or Mac format to Unix format and vice versa.
91 .PP
92 In DOS/Windows text files a line break, also known as newline, is a combination
93 of two characters: a Carriage Return (\s-1CR\s0) followed by a Line Feed (\s-1LF\s0). In Unix
94 text files a line break is a single character: the Line Feed (\s-1LF\s0). In Mac text
95 files, prior to Mac \s-1OS X,\s0 a line break was single Carriage Return (\s-1CR\s0)
96 character. Nowadays Mac \s-1OS\s0 uses Unix style (\s-1LF\s0) line breaks.
97 .PP
98 Besides line breaks Dos2unix can also convert the encoding of files. A few
99 \&\s-1DOS\s0 code pages can be converted to Unix Latin\-1. And Windows Unicode (\s-1UTF\-16\s0)
100 files can be converted to Unix Unicode (\s-1UTF\-8\s0) files.
101 .PP
102 Binary files are automatically skipped, unless conversion is forced.
103 .PP
104 Non-regular files, such as directories and FIFOs, are automatically skipped.
105 .PP
106 Symbolic links and their targets are by default kept untouched.  Symbolic links
107 can optionally be replaced, or the output can be written to the symbolic link
108 target.  Writing to a symbolic link target is not supported on Windows.
109 .PP
110 Dos2unix was modelled after dos2unix under SunOS/Solaris.  There is one
111 important difference with the original SunOS/Solaris version. This version does
112 by default in-place conversion (old file mode), while the original
113 SunOS/Solaris version only supports paired conversion (new file mode). See also
114 options \f(CW\*(C`\-o\*(C'\fR and \f(CW\*(C`\-n\*(C'\fR.
115 .SH "OPTIONS"
116 .IX Header "OPTIONS"
117 .IP "\fB\-\-\fR" 4
118 .IX Item "--"
119 Treat all following options as file names. Use this option if you want to
120 convert files whose names start with a dash. For instance to convert
121 a file named \*(L"\-foo\*(R", you can use this command:
122 .Sp
123 .Vb 1
124 \&    dos2unix \-\- \-foo
125 .Ve
126 .Sp
127 Or in new file mode:
128 .Sp
129 .Vb 1
130 \&    dos2unix \-n \-\- \-foo out.txt
131 .Ve
132 .IP "\fB\-ascii\fR" 4
133 .IX Item "-ascii"
134 Convert only line breaks. This is the default conversion mode.
135 .IP "\fB\-iso\fR" 4
136 .IX Item "-iso"
137 Conversion between \s-1DOS\s0 and \s-1ISO\-8859\-1\s0 character set. See also section
138 \&\s-1CONVERSION MODES.\s0
139 .IP "\fB\-1252\fR" 4
140 .IX Item "-1252"
141 Use Windows code page 1252 (Western European).
142 .IP "\fB\-437\fR" 4
143 .IX Item "-437"
144 Use \s-1DOS\s0 code page 437 (\s-1US\s0). This is the default code page used for \s-1ISO\s0 conversion.
145 .IP "\fB\-850\fR" 4
146 .IX Item "-850"
147 Use \s-1DOS\s0 code page 850 (Western European).
148 .IP "\fB\-860\fR" 4
149 .IX Item "-860"
150 Use \s-1DOS\s0 code page 860 (Portuguese).
151 .IP "\fB\-863\fR" 4
152 .IX Item "-863"
153 Use \s-1DOS\s0 code page 863 (French Canadian).
154 .IP "\fB\-865\fR" 4
155 .IX Item "-865"
156 Use \s-1DOS\s0 code page 865 (Nordic).
157 .IP "\fB\-7\fR" 4
158 .IX Item "-7"
159 Convert 8 bit characters to 7 bit space.
160 .IP "\fB\-b, \-\-keep\-bom\fR" 4
161 .IX Item "-b, --keep-bom"
162 Keep Byte Order Mark (\s-1BOM\s0). When the input file has a \s-1BOM,\s0 write a \s-1BOM\s0 in
163 the output file. This is the default behavior when converting to \s-1DOS\s0 line
164 breaks. See also option \f(CW\*(C`\-r\*(C'\fR.
165 .IP "\fB\-c, \-\-convmode \s-1CONVMODE\s0\fR" 4
166 .IX Item "-c, --convmode CONVMODE"
167 Set conversion mode. Where \s-1CONVMODE\s0 is one of:
168 \&\fIascii\fR, \fI7bit\fR, \fIiso\fR, \fImac\fR
169 with ascii being the default.
170 .IP "\fB\-f, \-\-force\fR" 4
171 .IX Item "-f, --force"
172 Force conversion of binary files.
173 .IP "\fB\-h, \-\-help\fR" 4
174 .IX Item "-h, --help"
175 Display help and exit.
176 .IP "\fB\-k, \-\-keepdate\fR" 4
177 .IX Item "-k, --keepdate"
178 Keep the date stamp of output file same as input file.
179 .IP "\fB\-L, \-\-license\fR" 4
180 .IX Item "-L, --license"
181 Display program's license.
182 .IP "\fB\-l, \-\-newline\fR" 4
183 .IX Item "-l, --newline"
184 Add additional newline.
185 .Sp
186 \&\fBdos2unix\fR: Only \s-1DOS\s0 line breaks are changed to two Unix line breaks.
187 In Mac mode only Mac line breaks are changed to two Unix
188 line breaks.
189 .Sp
190 \&\fBunix2dos\fR: Only Unix line breaks are changed to two \s-1DOS\s0 line breaks.
191 In Mac mode Unix line breaks are changed to two Mac line breaks.
192 .IP "\fB\-m, \-\-add\-bom\fR" 4
193 .IX Item "-m, --add-bom"
194 Write a Byte Order Mark (\s-1BOM\s0) in the output file. By default an \s-1UTF\-8 BOM\s0
195 is written.
196 .Sp
197 When the input file is \s-1UTF\-16,\s0 and the option \f(CW\*(C`\-u\*(C'\fR is used, an \s-1UTF\-16
198 BOM\s0 will be written.
199 .Sp
200 Never use this option when the output encoding is other than \s-1UTF\-8\s0 or \s-1UTF\-16.\s0
201 See also section \s-1UNICODE.\s0
202 .IP "\fB\-n, \-\-newfile \s-1INFILE OUTFILE ...\s0\fR" 4
203 .IX Item "-n, --newfile INFILE OUTFILE ..."
204 New file mode. Convert file \s-1INFILE\s0 and write output to file \s-1OUTFILE.\s0
205 File names must be given in pairs and wildcard names should \fInot\fR be
206 used or you \fIwill\fR lose your files.
207 .Sp
208 The person who starts the conversion in new file (paired) mode will be the owner
209 of the converted file. The read/write permissions of the new file will be the
210 permissions of the original file minus the \fIumask\fR\|(1) of the person who runs the
211 conversion.
212 .IP "\fB\-o, \-\-oldfile \s-1FILE ...\s0\fR" 4
213 .IX Item "-o, --oldfile FILE ..."
214 Old file mode. Convert file \s-1FILE\s0 and overwrite output to it. The program
215 defaults to run in this mode. Wildcard names may be used.
216 .Sp
217 In old file (in-place) mode the converted file gets the same owner, group, and
218 read/write permissions as the original file. Also when the file is converted by
219 another user who has write permissions on the file (e.g. user root).  The
220 conversion will be aborted when it is not possible to preserve the original
221 values.  Change of owner could mean that the original owner is not able to read
222 the file any more. Change of group could be a security risk, the file could be
223 made readable for persons for whom it is not intended.  Preservation of owner,
224 group, and read/write permissions is only supported on Unix.
225 .IP "\fB\-q, \-\-quiet\fR" 4
226 .IX Item "-q, --quiet"
227 Quiet mode. Suppress all warnings and messages. The return value is zero.
228 Except when wrong command-line options are used.
229 .IP "\fB\-r, \-\-remove\-bom\fR" 4
230 .IX Item "-r, --remove-bom"
231 Remove Byte Order Mark (\s-1BOM\s0). Do not write a \s-1BOM\s0 in the output file.
232 This is the default behavior when converting to Unix line breaks.
233 See also option \f(CW\*(C`\-b\*(C'\fR.
234 .IP "\fB\-s, \-\-safe\fR" 4
235 .IX Item "-s, --safe"
236 Skip binary files (default).
237 .IP "\fB\-u, \-\-keep\-utf16\fR" 4
238 .IX Item "-u, --keep-utf16"
239 Keep the original \s-1UTF\-16\s0 encoding of the input file. The output file will be
240 written in the same \s-1UTF\-16\s0 encoding, little or big endian, as the input file.
241 This prevents transformation to \s-1UTF\-8.\s0 An \s-1UTF\-16 BOM\s0 will be written
242 accordingly. This option can be disabled with the \f(CW\*(C`\-ascii\*(C'\fR option.
243 .IP "\fB\-ul, \-\-assume\-utf16le\fR" 4
244 .IX Item "-ul, --assume-utf16le"
245 Assume that the input file format is \s-1UTF\-16LE.\s0
246 .Sp
247 When there is a Byte Order Mark in the input file the \s-1BOM\s0 has priority over
248 this option.
249 .Sp
250 When you made a wrong assumption (the input file was not in \s-1UTF\-16LE\s0 format) and
251 the conversion succeeded, you will get an \s-1UTF\-8\s0 output file with wrong text.
252 You can undo the wrong conversion with \fIiconv\fR\|(1) by converting the \s-1UTF\-8\s0 output
253 file back to \s-1UTF\-16LE.\s0 This will bring back the original file.
254 .Sp
255 The assumption of \s-1UTF\-16LE\s0 works as a \fIconversion mode\fR. By switching to the default
256 \&\fIascii\fR mode the \s-1UTF\-16LE\s0 assumption is turned off.
257 .IP "\fB\-ub, \-\-assume\-utf16be\fR" 4
258 .IX Item "-ub, --assume-utf16be"
259 Assume that the input file format is \s-1UTF\-16BE.\s0
260 .Sp
261 This option works the same as option \f(CW\*(C`\-ul\*(C'\fR.
262 .IP "\fB\-v, \-\-verbose\fR" 4
263 .IX Item "-v, --verbose"
264 Display verbose messages. Extra information is displayed about Byte Order Marks
265 and the amount of converted line breaks.
266 .IP "\fB\-F, \-\-follow\-symlink\fR" 4
267 .IX Item "-F, --follow-symlink"
268 Follow symbolic links and convert the targets.
269 .IP "\fB\-R, \-\-replace\-symlink\fR" 4
270 .IX Item "-R, --replace-symlink"
271 Replace symbolic links with converted files
272 (original target files remain unchanged).
273 .IP "\fB\-S, \-\-skip\-symlink\fR" 4
274 .IX Item "-S, --skip-symlink"
275 Keep symbolic links and targets unchanged (default).
276 .IP "\fB\-V, \-\-version\fR" 4
277 .IX Item "-V, --version"
278 Display version information and exit.
279 .SH "MAC MODE"
280 .IX Header "MAC MODE"
281 In normal mode line breaks are converted from \s-1DOS\s0 to Unix and vice versa.
282 Mac line breaks are not converted.
283 .PP
284 In Mac mode line breaks are converted from Mac to Unix and vice versa. \s-1DOS\s0
285 line breaks are not changed.
286 .PP
287 To run in Mac mode use the command-line option \f(CW\*(C`\-c mac\*(C'\fR or use the
288 commands \f(CW\*(C`mac2unix\*(C'\fR or \f(CW\*(C`unix2mac\*(C'\fR.
289 .SH "CONVERSION MODES"
290 .IX Header "CONVERSION MODES"
291 .IP "\fBascii\fR" 4
292 .IX Item "ascii"
293 In mode \f(CW\*(C`ascii\*(C'\fR only line breaks are converted. This is the default conversion
294 mode.
295 .Sp
296 Although the name of this mode is \s-1ASCII,\s0 which is a 7 bit standard, the
297 actual mode is 8 bit. Use always this mode when converting Unicode \s-1UTF\-8\s0
298 files.
299 .IP "\fB7bit\fR" 4
300 .IX Item "7bit"
301 In this mode all 8 bit non-ASCII characters (with values from 128 to 255)
302 are converted to a 7 bit space.
303 .IP "\fBiso\fR" 4
304 .IX Item "iso"
305 Characters are converted between a \s-1DOS\s0 character set (code page) and \s-1ISO\s0
306 character set \s-1ISO\-8859\-1 \s0(Latin\-1) on Unix. \s-1DOS\s0 characters without \s-1ISO\-8859\-1\s0
307 equivalent, for which conversion is not possible, are converted to a dot. The
308 same counts for \s-1ISO\-8859\-1\s0 characters without \s-1DOS\s0 counterpart.
309 .Sp
310 When only option \f(CW\*(C`\-iso\*(C'\fR is used dos2unix will try to determine the active code
311 page. When this is not possible dos2unix will use default code page \s-1CP437,\s0
312 which is mainly used in the \s-1USA. \s0 To force a specific code page use options
313 \&\f(CW\*(C`\-437\*(C'\fR (\s-1US\s0), \f(CW\*(C`\-850\*(C'\fR (Western European), \f(CW\*(C`\-860\*(C'\fR (Portuguese), \f(CW\*(C`\-863\*(C'\fR (French
314 Canadian), or \f(CW\*(C`\-865\*(C'\fR (Nordic).  Windows code page \s-1CP1252 \s0(Western European) is
315 also supported with option \f(CW\*(C`\-1252\*(C'\fR. For other code pages use dos2unix in
316 combination with \fIiconv\fR\|(1).  Iconv can convert between a long list of character
317 encodings.
318 .Sp
319 Never use \s-1ISO\s0 conversion on Unicode text files. It will corrupt \s-1UTF\-8\s0 encoded files.
320 .Sp
321 Some examples:
322 .Sp
323 Convert from \s-1DOS\s0 default code page to Unix Latin\-1
324 .Sp
325 .Vb 1
326 \&    dos2unix \-iso \-n in.txt out.txt
327 .Ve
328 .Sp
329 Convert from \s-1DOS CP850\s0 to Unix Latin\-1
330 .Sp
331 .Vb 1
332 \&    dos2unix \-850 \-n in.txt out.txt
333 .Ve
334 .Sp
335 Convert from Windows \s-1CP1252\s0 to Unix Latin\-1
336 .Sp
337 .Vb 1
338 \&    dos2unix \-1252 \-n in.txt out.txt
339 .Ve
340 .Sp
341 Convert from Windows \s-1CP1252\s0 to Unix \s-1UTF\-8 \s0(Unicode)
342 .Sp
343 .Vb 1
344 \&    iconv \-f CP1252 \-t UTF\-8 in.txt | dos2unix > out.txt
345 .Ve
346 .Sp
347 Convert from Unix Latin\-1 to \s-1DOS\s0 default code page
348 .Sp
349 .Vb 1
350 \&    unix2dos \-iso \-n in.txt out.txt
351 .Ve
352 .Sp
353 Convert from Unix Latin\-1 to \s-1DOS CP850\s0
354 .Sp
355 .Vb 1
356 \&    unix2dos \-850 \-n in.txt out.txt
357 .Ve
358 .Sp
359 Convert from Unix Latin\-1 to Windows \s-1CP1252\s0
360 .Sp
361 .Vb 1
362 \&    unix2dos \-1252 \-n in.txt out.txt
363 .Ve
364 .Sp
365 Convert from Unix \s-1UTF\-8 \s0(Unicode) to Windows \s-1CP1252\s0
366 .Sp
367 .Vb 1
368 \&    unix2dos < in.txt | iconv \-f UTF\-8 \-t CP1252 > out.txt
369 .Ve
370 .Sp
371 See also <http://czyborra.com/charsets/codepages.html>
372 and <http://czyborra.com/charsets/iso8859.html>.
373 .SH "UNICODE"
374 .IX Header "UNICODE"
375 .SS "Encodings"
376 .IX Subsection "Encodings"
377 There exist different Unicode encodings. On Unix and Linux Unicode files are
378 typically encoded in \s-1UTF\-8\s0 encoding. On Windows Unicode text files can be
379 encoded in \s-1UTF\-8, UTF\-16,\s0 or \s-1UTF\-16\s0 big endian, but are mostly encoded in
380 \&\s-1UTF\-16\s0 format.
381 .SS "Conversion"
382 .IX Subsection "Conversion"
383 Unicode text files can have \s-1DOS,\s0 Unix or Mac line breaks, like regular text
384 files.
385 .PP
386 All versions of dos2unix and unix2dos can convert \s-1UTF\-8\s0 encoded files, because
387 \&\s-1UTF\-8\s0 was designed for backward compatibility with \s-1ASCII.\s0
388 .PP
389 Dos2unix and unix2dos with Unicode \s-1UTF\-16\s0 support, can read little and big
390 endian \s-1UTF\-16\s0 encoded text files. To see if dos2unix was built with \s-1UTF\-16\s0
391 support type \f(CW\*(C`dos2unix \-V\*(C'\fR.
392 .PP
393 \&\s-1UTF\-16\s0 encoded files are by default converted to \s-1UTF\-8.\s0 On Unix/Linux it is
394 required that the locale character encoding is set to \s-1UTF\-8.\s0 Use the \fIlocale\fR\|(1)
395 command to find out what the locale character encoding is. \s-1UTF\-8\s0 formatted
396 text files are well supported on both Windows and Unix/Linux.
397 .PP
398 \&\s-1UTF\-16\s0 and \s-1UTF\-8\s0 encoding are fully compatible, there will no text be lost in
399 the conversion. When an \s-1UTF\-16\s0 to \s-1UTF\-8\s0 conversion error occurs, for instance
400 when the \s-1UTF\-16\s0 input file contains an error, the file will be skipped.
401 .PP
402 When option \f(CW\*(C`\-u\*(C'\fR is used, the output file will be written in the same \s-1UTF\-16\s0
403 encoding as the input file. Option \f(CW\*(C`\-u\*(C'\fR prevents conversion to \s-1UTF\-8.\s0
404 .PP
405 Dos2unix and unix2dos have no option to convert \s-1UTF\-8\s0 files to \s-1UTF\-16.\s0
406 .PP
407 \&\s-1ISO\s0 and 7\-bit mode conversion do not work on \s-1UTF\-16\s0 files.
408 .SS "Byte Order Mark"
409 .IX Subsection "Byte Order Mark"
410 On Windows Unicode text files typically have a Byte Order Mark (\s-1BOM\s0), because
411 many Windows programs (including Notepad) add BOMs by default. See also
412 <http://en.wikipedia.org/wiki/Byte_order_mark>.
413 .PP
414 On Unix Unicode files typically don't have a \s-1BOM.\s0 It is assumed that text files
415 are encoded in the locale character encoding.
416 .PP
417 Dos2unix can only detect if a file is in \s-1UTF\-16\s0 format if the file has a \s-1BOM.\s0
418 When an \s-1UTF\-16\s0 file doesn't have a \s-1BOM,\s0 dos2unix will see the file as a binary
419 file.
420 .PP
421 Use option \f(CW\*(C`\-ul\*(C'\fR or \f(CW\*(C`\-ub\*(C'\fR to convert an \s-1UTF\-16\s0 file without \s-1BOM.\s0
422 .PP
423 Dos2unix writes by default no \s-1BOM\s0 in the output file. With option \f(CW\*(C`\-b\*(C'\fR
424 Dos2unix writes a \s-1BOM\s0 when the input file has a \s-1BOM.\s0
425 .PP
426 Unix2dos writes by default a \s-1BOM\s0 in the output file when the input file has a
427 \&\s-1BOM.\s0 Use option \f(CW\*(C`\-r\*(C'\fR to remove the \s-1BOM.\s0
428 .PP
429 Dos2unix and unix2dos write always a \s-1BOM\s0 when option \f(CW\*(C`\-m\*(C'\fR is used.
430 .SS "Unicode examples"
431 .IX Subsection "Unicode examples"
432 Convert from Windows \s-1UTF\-16 \s0(with \s-1BOM\s0) to Unix \s-1UTF\-8\s0
433 .PP
434 .Vb 1
435 \&    dos2unix \-n in.txt out.txt
436 .Ve
437 .PP
438 Convert from Windows \s-1UTF\-16LE \s0(without \s-1BOM\s0) to Unix \s-1UTF\-8\s0
439 .PP
440 .Vb 1
441 \&    dos2unix \-ul \-n in.txt out.txt
442 .Ve
443 .PP
444 Convert from Unix \s-1UTF\-8\s0 to Windows \s-1UTF\-8\s0 with \s-1BOM\s0
445 .PP
446 .Vb 1
447 \&    unix2dos \-m \-n in.txt out.txt
448 .Ve
449 .PP
450 Convert from Unix \s-1UTF\-8\s0 to Windows \s-1UTF\-16\s0
451 .PP
452 .Vb 1
453 \&    unix2dos < in.txt | iconv \-f UTF\-8 \-t UTF\-16 > out.txt
454 .Ve
455 .SH "EXAMPLES"
456 .IX Header "EXAMPLES"
457 Read input from 'stdin' and write output to 'stdout'.
458 .PP
459 .Vb 2
460 \&    dos2unix
461 \&    dos2unix \-l \-c mac
462 .Ve
463 .PP
464 Convert and replace a.txt. Convert and replace b.txt.
465 .PP
466 .Vb 2
467 \&    dos2unix a.txt b.txt
468 \&    dos2unix \-o a.txt b.txt
469 .Ve
470 .PP
471 Convert and replace a.txt in ascii conversion mode.
472 .PP
473 .Vb 1
474 \&    dos2unix a.txt
475 .Ve
476 .PP
477 Convert and replace a.txt in ascii conversion mode.
478 Convert and replace b.txt in 7bit conversion mode.
479 .PP
480 .Vb 3
481 \&    dos2unix a.txt \-c 7bit b.txt
482 \&    dos2unix \-c ascii a.txt \-c 7bit b.txt
483 \&    dos2unix \-ascii a.txt \-7 b.txt
484 .Ve
485 .PP
486 Convert a.txt from Mac to Unix format.
487 .PP
488 .Vb 2
489 \&    dos2unix \-c mac a.txt
490 \&    mac2unix a.txt
491 .Ve
492 .PP
493 Convert a.txt from Unix to Mac format.
494 .PP
495 .Vb 2
496 \&    unix2dos \-c mac a.txt
497 \&    unix2mac a.txt
498 .Ve
499 .PP
500 Convert and replace a.txt while keeping original date stamp.
501 .PP
502 .Vb 2
503 \&    dos2unix \-k a.txt
504 \&    dos2unix \-k \-o a.txt
505 .Ve
506 .PP
507 Convert a.txt and write to e.txt.
508 .PP
509 .Vb 1
510 \&    dos2unix \-n a.txt e.txt
511 .Ve
512 .PP
513 Convert a.txt and write to e.txt, keep date stamp of e.txt same as a.txt.
514 .PP
515 .Vb 1
516 \&    dos2unix \-k \-n a.txt e.txt
517 .Ve
518 .PP
519 Convert and replace a.txt. Convert b.txt and write to e.txt.
520 .PP
521 .Vb 2
522 \&    dos2unix a.txt \-n b.txt e.txt
523 \&    dos2unix \-o a.txt \-n b.txt e.txt
524 .Ve
525 .PP
526 Convert c.txt and write to e.txt. Convert and replace a.txt.
527 Convert and replace b.txt. Convert d.txt and write to f.txt.
528 .PP
529 .Vb 1
530 \&    dos2unix \-n c.txt e.txt \-o a.txt b.txt \-n d.txt f.txt
531 .Ve
532 .SH "RECURSIVE CONVERSION"
533 .IX Header "RECURSIVE CONVERSION"
534 Use dos2unix in combination with the \fIfind\fR\|(1) and \fIxargs\fR\|(1) commands to
535 recursively convert text files in a directory tree structure. For instance to
536 convert all .txt files in the directory tree under the current directory type:
537 .PP
538 .Vb 1
539 \&    find . \-name *.txt |xargs dos2unix
540 .Ve
541 .SH "LOCALIZATION"
542 .IX Header "LOCALIZATION"
543 .IP "\fB\s-1LANG\s0\fR" 4
544 .IX Item "LANG"
545 The primary language is selected with the environment variable \s-1LANG.\s0 The \s-1LANG\s0
546 variable consists out of several parts. The first part is in small letters the
547 language code. The second is optional and is the country code in capital
548 letters, preceded with an underscore. There is also an optional third part:
549 character encoding, preceded with a dot. A few examples for \s-1POSIX\s0 standard type
550 shells:
551 .Sp
552 .Vb 7
553 \&    export LANG=nl               Dutch
554 \&    export LANG=nl_NL            Dutch, The Netherlands
555 \&    export LANG=nl_BE            Dutch, Belgium
556 \&    export LANG=es_ES            Spanish, Spain
557 \&    export LANG=es_MX            Spanish, Mexico
558 \&    export LANG=en_US.iso88591   English, USA, Latin\-1 encoding
559 \&    export LANG=en_GB.UTF\-8      English, UK, UTF\-8 encoding
560 .Ve
561 .Sp
562 For a complete list of language and country codes see the gettext manual:
563 <http://www.gnu.org/software/gettext/manual/gettext.html#Language\-Codes>
564 .Sp
565 On Unix systems you can use to command \fIlocale\fR\|(1) to get locale specific
566 information.
567 .IP "\fB\s-1LANGUAGE\s0\fR" 4
568 .IX Item "LANGUAGE"
569 With the \s-1LANGUAGE\s0 environment variable you can specify a priority list of
570 languages, separated by colons. Dos2unix gives preference to \s-1LANGUAGE\s0 over \s-1LANG.\s0
571 For instance, first Dutch and then German: \f(CW\*(C`LANGUAGE=nl:de\*(C'\fR. You have to first
572 enable localization, by setting \s-1LANG \s0(or \s-1LC_ALL\s0) to a value other than
573 \&\*(L"C\*(R", before you can use a language priority list through the \s-1LANGUAGE\s0
574 variable. See also the gettext manual:
575 <http://www.gnu.org/software/gettext/manual/gettext.html#The\-LANGUAGE\-variable>
576 .Sp
577 If you select a language which is not available you will get the
578 standard English messages.
579 .IP "\fB\s-1DOS2UNIX_LOCALEDIR\s0\fR" 4
580 .IX Item "DOS2UNIX_LOCALEDIR"
581 With the environment variable \s-1DOS2UNIX_LOCALEDIR\s0 the \s-1LOCALEDIR\s0 set
582 during compilation can be overruled. \s-1LOCALEDIR\s0 is used to find the
583 language files. The \s-1GNU\s0 default value is \f(CW\*(C`/usr/local/share/locale\*(C'\fR.
584 Option \fB\-\-version\fR will display the \s-1LOCALEDIR\s0 that is used.
585 .Sp
586 Example (\s-1POSIX\s0 shell):
587 .Sp
588 .Vb 1
589 \&    export DOS2UNIX_LOCALEDIR=$HOME/share/locale
590 .Ve
591 .SH "RETURN VALUE"
592 .IX Header "RETURN VALUE"
593 On success, zero is returned.  When a system error occurs the last system error will be
594 returned. For other errors 1 is returned.
595 .PP
596 The return value is always zero in quiet mode, except when wrong command-line options
597 are used.
598 .SH "STANDARDS"
599 .IX Header "STANDARDS"
600 <http://en.wikipedia.org/wiki/Text_file>
601 .PP
602 <http://en.wikipedia.org/wiki/Carriage_return>
603 .PP
604 <http://en.wikipedia.org/wiki/Newline>
605 .PP
606 <http://en.wikipedia.org/wiki/Unicode>
607 .SH "AUTHORS"
608 .IX Header "AUTHORS"
609 Benjamin Lin \- <blin@socs.uts.edu.au>
610 Bernd Johannes Wuebben (mac2unix mode) \- <wuebben@kde.org>,
611 Christian Wurll (add extra newline) \- <wurll@ira.uka.de>,
612 Erwin Waterlander \- <waterlan@xs4all.nl> (Maintainer)
613 .PP
614 Project page: <http://waterlan.home.xs4all.nl/dos2unix.html>
615 .PP
616 SourceForge page: <http://sourceforge.net/projects/dos2unix/>
617 .SH "SEE ALSO"
618 .IX Header "SEE ALSO"
619 \&\fIfile\fR\|(1)
620 \&\fIfind\fR\|(1)
621 \&\fIiconv\fR\|(1)
622 \&\fIlocale\fR\|(1)
623 \&\fIxargs\fR\|(1)