From 0077b68f7eb84ff84bc271256e4ac0e178e531f9 Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Thu, 20 Oct 2016 13:29:34 +0900 Subject: Imported Upstream version 7.3.1 Change-Id: I838c61f0002c36df152a67302d8881f8b6d3ded2 Signed-off-by: DongHun Kwak --- man/zh_CN/man1/dos2unix.1 | 678 ++++++++++++++++++ man/zh_CN/man1/dos2unix.htm | 717 +++++++++++++++++++ man/zh_CN/man1/dos2unix.po | 1601 +++++++++++++++++++++++++++++++++++++++++++ man/zh_CN/man1/dos2unix.pod | 624 +++++++++++++++++ man/zh_CN/man1/dos2unix.txt | 517 ++++++++++++++ 5 files changed, 4137 insertions(+) create mode 100644 man/zh_CN/man1/dos2unix.1 create mode 100644 man/zh_CN/man1/dos2unix.htm create mode 100644 man/zh_CN/man1/dos2unix.po create mode 100644 man/zh_CN/man1/dos2unix.pod create mode 100644 man/zh_CN/man1/dos2unix.txt (limited to 'man/zh_CN') diff --git a/man/zh_CN/man1/dos2unix.1 b/man/zh_CN/man1/dos2unix.1 new file mode 100644 index 0000000..989d241 --- /dev/null +++ b/man/zh_CN/man1/dos2unix.1 @@ -0,0 +1,678 @@ +.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.31) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{ +. if \nF \{ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" ======================================================================== +.\" +.IX Title "dos2unix 1" +.TH dos2unix 1 "2015-09-30" "dos2unix" "2015-09-30" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "名称" +.IX Header "名称" +dos2unix \- DOS/Mac \- Unix文件格式转换器 +.SH "概要" +.IX Header "概要" +.Vb 2 +\& dos2unix [选项] [文件 …] [\-n 输入文件 输出文件 ...] +\& unix2dos [选项] [文件 …] [\-n 输入文件 输出文件 ...] +.Ve +.SH "说明" +.IX Header "说明" +Dos2unix软件包包括工具\f(CW\*(C`dos2unix\*(C'\fR 和 \f(CW\*(C`unix2dos\*(C'\fR,用于将纯文本文件在DOS或Mac格式与Unix格式之间相互转换。 +.PP +DOS/Windows的文本文件中,断行符是由两个字符共同表示的:回车符(CR)和换行符(LF)。Unix的文本文件中,换行符则由单个换行符(LF)表示。而Mac的文本文件则由单个回车符(CR,用于Mac +\&\s-1OS\s0 X之前的系统)或单个换行符(LF,用于当下的新Mac OS)表示。 +.PP +除了断行符,Dos2unix还可以转换文件编码。一些DOS编码页可以被转换为Unix Latin\-1,Windows +Unicode(UTF\-16)文件也可以被转换为Unix Unicode(UTF\-8)文件。 +.PP +二进制文件则会被自动跳过,除非指定了强制转换选项。 +.PP +特殊文件,如目录和队列,会被自动跳过。 +.PP +符号链接和其所指向的目标默认不会被转换。可以用选项来指定替换符号链接,或者将输出写入到链接目标。Windows下不支持写入到符号链接的目标。 +.PP +Dos2unix由SunOS/Solaris下的版本改写而成。这两个版本间有一个重大差异:本版本默认进行原位转换(旧文件模式),而原来SunOS/Solaris下的版本只支持配对转换(新文件模式)。参见选项 +\&\f(CW\*(C`\-o\*(C'\fR 和 \f(CW\*(C`\-n\*(C'\fR。 +.SH "选项" +.IX Header "选项" +.IP "\fB\-\-\fR" 4 +.IX Item "--" +将后面所有的选项当作文件名。如果你希望转换一个文件名以破折号开头的文件,可以使用这个选项。例如,要转换一个名为“\-foo”的文件,你可以用这个命令: +.Sp +.Vb 1 +\& dos2unix \-\- \-foo +.Ve +.Sp +或者在新文件模式中: +.Sp +.Vb 1 +\& dos2unix \-n \-\- \-foo out.txt +.Ve +.IP "\fB\-ascii\fR" 4 +.IX Item "-ascii" +只转换断行符。这是默认的转换模式。 +.IP "\fB\-iso\fR" 4 +.IX Item "-iso" +在DOS和ISO\-8859\-1字符集之间转换。参见 \s-1CONVERSION MODES\s0 一节。 +.IP "\fB\-1252\fR" 4 +.IX Item "-1252" +使用Windows 1252 编码页(西欧)。 +.IP "\fB\-437\fR" 4 +.IX Item "-437" +使用DOS 437 编码页(美国)。这是ISO转换时的默认编码页。 +.IP "\fB\-850\fR" 4 +.IX Item "-850" +使用DOS 850 编码页(西欧)。 +.IP "\fB\-860\fR" 4 +.IX Item "-860" +使用DOS 860 编码页(葡萄牙)。 +.IP "\fB\-863\fR" 4 +.IX Item "-863" +使用DOS 863 编码页(加拿大法语)。 +.IP "\fB\-865\fR" 4 +.IX Item "-865" +.Vb 1 +\& 使用DOS 865 编码页(北欧)。 +.Ve +.IP "\fB\-7\fR" 4 +.IX Item "-7" +将8位字符转换到7位空间。 +.IP "\fB\-b, \-\-keep\-bom\fR" 4 +.IX Item "-b, --keep-bom" +保留字节序标记(BOM)。当输入文件含有BOM头时,也向输出文件写入BOM。这是转换到DOS断行符时的默认行为。参见选项 \f(CW\*(C`\-r\*(C'\fR。 +.IP "\fB\-c, \-\-convmode 转换模式\fR" 4 +.IX Item "-c, --convmode 转换模式" +改变转换模式。转换模式可以为:\fIascii\fR、\fI7bit\fR、\fIiso\fR或\fImac\fR,默认为ascii。 +.IP "\fB\-D, \-\-display\-enc \s-1ENCODAGE\s0\fR" 4 +.IX Item "-D, --display-enc ENCODAGE" +设置显示文本的编码。编码可以为:\fIansi\fR、\fIunicode\fR、\fIutf8\fR,默认为ansi。 +.Sp +这一选项只对支持Unicode文件名的Windows版dos2unix有效。它对文件名的读写无效,只影响它们的显示结果。 +.Sp +在Windows控制台中,有几种可以根据文本编码来显示文本的方法。它们各有利弊。 +.RS 4 +.IP "\fBansi\fR" 4 +.IX Item "ansi" +dos2unix默认使用ANSI编码文本。优点是它能提供向后兼容性,并能用于raster和TrueType字体。在一些地方,你可能需要使用 +\&\f(CW\*(C`chcp\*(C'\fR 命令将活动DOS OEM编码页设置为Windows系统ANSI编码页,因为dos2unix使用Windows系统编码页。 +.Sp +ansi的缺点是含有非系统默认编码页中字符的国际化文件名将无法被正确显示。你会看到一些问号或其他错误的字符。如果你不需要处理外文文件名,这一方法是不错的选择。 +.IP "\fBunicode\fR" 4 +.IX Item "unicode" +Unicode编码(Windows中对UTF\-16的称呼)的优点是文本可以被正确显示,也无需改变活动编码页。你可能需要设置终端字体为TrueType以便正确显示国际化字符。如果TrueType字体中不包含某个字符,你会看到一个小方块,有时方块中还会有一个问号。 +.Sp +当你使用ConEmu终端时,所以的文本将会被正确显示,因为ConEmu会自动选择合适的字体。 +.Sp +Unicode的缺点在于它与ASCII不兼容。当你将输出重定向到其他程序或文件时,它可能不那么容易控制。重定向到文件无法得到正确的UTF\-16文件。 +.IP "\fButf8\fR" 4 +.IX Item "utf8" +utf8的优点在于它与ASCII兼容,并且当你将输出重定向到文件时,文件将会为正确的UTF\-8格式。你需要设置终端的字体为TrueType字体。使用TrueType字体可以使得文本得以正确显示,就像使用 +\&\f(CW\*(C`unicode\*(C'\fR 编码时那样。 +.Sp +缺点是当你使用默认的raster字体时,所有的非ASCII字符将无法被正确显示。不仅是unicode文件名,连翻译的消息也无法被读取。在配置为东亚地区的Windows中,当终端中显示这些消息时你可能会看到闪烁现象。 +.Sp +在ConEmu终端中,utf编码方式可以正常工作。 +.RE +.RS 4 +.Sp +默认的编码方式可以通过设置 \s-1DOS2UNIX_DISPLAY_ENC\s0 环境变量为 \f(CW\*(C`unicode\*(C'\fR 或 \f(CW\*(C`utf8\*(C'\fR 来改变。 +.RE +.IP "\fB\-f, \-\-force\fR" 4 +.IX Item "-f, --force" +强制转换二进制文件。 +.IP "\fB\-gb, \-\-gb18030\fR" 4 +.IX Item "-gb, --gb18030" +在Windows中,UTF\-16默认被转换为UTF\-8格式,无论区域设置为何。请使用这一选项将UTF\-16文件转换为GB18030格式。此选项只在Windows下有效。参加 +\&\s-1GB18030\s0 一节。 +.IP "\fB\-h, \-\-help\fR" 4 +.IX Item "-h, --help" +显示帮助,然后退出。 +.IP "\fB\-i[标志], \-\-info[=标志] 文件 …\fR" 4 +.IX Item "-i[标志], --info[=标志] 文件 …" +显示文件信息。不进行转换。 +.Sp +将会显示下列信息(按顺序):DOS断行符的数量、Unix断行符的数量、Mac断行符的数量、是否有BOM、文本/二进制、文件名。 +.Sp +输出示例: +.Sp +.Vb 8 +\& 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 +.Ve +.Sp +可以为输出设置额外的标志(一个或多个)。 +.RS 4 +.IP "\fBd\fR" 4 +.IX Item "d" +显示DOS断行符的数量。 +.IP "\fBu\fR" 4 +.IX Item "u" +显示Unix断行符的数量。 +.IP "\fBm\fR" 4 +.IX Item "m" +显示Mac断行符的数量。 +.IP "\fBb\fR" 4 +.IX Item "b" +显示BOM状况。 +.IP "\fBt\fR" 4 +.IX Item "t" +显示文件为文本或二进制。 +.IP "\fBc\fR" 4 +.IX Item "c" +只显示将会被转换的文件。 +.Sp +若设置了 \f(CW\*(C`c\*(C'\fR标志,dos2unix将只显示含有DOS断行符的文件,unix2dos将只显示含有Unix断行符的文件。 +.RE +.RS 4 +.Sp +示例: +.Sp +显示所有 *.txt 文件的信息: +.Sp +.Vb 1 +\& dos2unix \-i *.txt +.Ve +.Sp +只显示DOS断行符和Unix断行符的数量: +.Sp +.Vb 1 +\& dos2unix \-idu *.txt +.Ve +.Sp +只显示BOM状况: +.Sp +.Vb 1 +\& dos2unix \-\-info=b *.txt +.Ve +.Sp +列出含有DOS断行符的文件: +.Sp +.Vb 1 +\& dos2unix \-ic *.txt +.Ve +.Sp +列出含有Unix断行符的文件: +.Sp +.Vb 1 +\& unix2dos \-ic *.txt +.Ve +.Sp +只转换含有DOS断行符的文件,保持其他文件不变: +.Sp +.Vb 1 +\& dos2unix \-ic *.txt | xargs dos2unix +.Ve +.Sp +查找含有DOS断行符的文本文件: +.Sp +.Vb 1 +\& find \-name \*(Aq*.txt\*(Aq | xargs dos2unix \-ic +.Ve +.RE +.IP "\fB\-k, \-\-keepdate\fR" 4 +.IX Item "-k, --keepdate" +将输入文件的时间戳应用到输出文件。 +.IP "\fB\-L, \-\-license\fR" 4 +.IX Item "-L, --license" +显示程序许可证。 +.IP "\fB\-l, \-\-newline\fR" 4 +.IX Item "-l, --newline" +添加额外的新行。 +.Sp +\&\fBdos2unix\fR:只有DOS断行符会被转换为两个Unix断行符。在Mac模式下,只有Mac断行符会被转换为Unix断行符。 +.Sp +\&\fBunix2dos\fR:只有Unix断行符会被转换为两个DOS断行符。在Mac模式下,Unix断行符会被转换为两个Mac断行符。 +.IP "\fB\-m, \-\-add\-bom\fR" 4 +.IX Item "-m, --add-bom" +将字节序标记(BOM)写入到输出文件。默认情况下将写入UTF\-8 BOM。 +.Sp +当输入文件为UTF\-16格式,并且使用了 \f(CW\*(C`\-u\*(C'\fR选项,将写入UTF\-16 BOM。 +.Sp +当输出文件不是UTF\-8、UTF\-16或GB18030格式时,请不要使用此选项。参加 \s-1UNICODE\s0 一节。 +.IP "\fB\-n, \-\-newline 输入文件 输出文件 ...\fR" 4 +.IX Item "-n, --newline 输入文件 输出文件 ..." +新文件模式。转换输入文件并写入到输出文件。文件名必须成对给出,并且 \fI不能\fR 使用通配符,否则你 \fI将会\fR丢失文件。 +.Sp +使用新文件(配对)模式转换时,命令执行者必须为文件的所有者。新文件的读/写权限将由源文件的权限减去命令执行者的 \fIumask\fR\|(1) 得到。 +.IP "\fB\-o, \-\-oldfile 文件 ...\fR" 4 +.IX Item "-o, --oldfile 文件 ..." +旧文件模式。转换并将输出覆盖到源文件。程序默认使用此模式,允许使用通配符。 +.Sp +在旧文件(替换)模式下,被转换的文件的所有者、组和读/写权限保持不变。当文件被其他具有写权限的用户(如root)转换时,情况也是如此。如果无法保持这些值不变,转换将会终止。改变源文件的所有者可能造成其无法读取该文件,而改变组则可能带来安全隐患,使文件被不法分子读取。只有Unix才支持转换时保留所有者、组和读/写权限。 +.IP "\fB\-q, \-\-quiet\fR" 4 +.IX Item "-q, --quiet" +安静模式。不显示任何警告或信息。返回值为0,除非命令行选项有误。 +.IP "\fB\-r, \-\-remove\-bom\fR" 4 +.IX Item "-r, --remove-bom" +移除字节序标记(BOM),不写入BOM到输出文件。这是转换到Unix断行符时的默认行为。参见选项 \f(CW\*(C`\-b\*(C'\fR。 +.IP "\fB\-s, \-\-safe\fR" 4 +.IX Item "-s, --safe" +跳过二进制文件(默认)。 +.IP "\fB\-u, \-\-keep\-utf16\fR" 4 +.IX Item "-u, --keep-utf16" +保留输入文件的UTF\-16编码。输出文件也使用UTF\-16编码和相同的尾序。这将阻止转换到UTF\-8。相应也会写入UTF\-16 BOM。可以用 +\&\f(CW\*(C`\-ascii\*(C'\fR选项来禁止。 +.IP "\fB\-ul, \-\-assume\-utf16le\fR" 4 +.IX Item "-ul, --assume-utf16le" +假定输入文件格式为UTF\-16LE。 +.Sp +输入文件中有BOM时,将会覆盖此选项。 +.Sp +如果你做了错误的假设(输入文件不为UTF\-16LE格式),并且转换成功,你将会得到一个错误的UTF\-8格式的文件。你可以用 \fIiconv\fR\|(1) +来撤销转换,将其从UTF\-8转换回UTF\-16LE。这样做可以恢复源文件。 +.Sp +对UTF\-16LE的假定将根据 l<转换模式> 来工作。若改变了默认的 l 模式,则这一假定将会被关闭。 +.IP "\fB\-ub, \-\-assume\-utf16be\fR" 4 +.IX Item "-ub, --assume-utf16be" +假定输入文件格式为UTF\-16BE。 +.Sp +这一选项与 \f(CW\*(C`\-ul\*(C'\fR 类似。 +.IP "\fB\-v, \-\-verbose\fR" 4 +.IX Item "-v, --verbose" +显示更多信息。将会显示有关BOM和转换统计的额外信息。 +.IP "\fB\-F, \-\-follow\-symlink\fR" 4 +.IX Item "-F, --follow-symlink" +追踪符号链接并转换其目标。 +.IP "\fB\-R, \-\-replace\-symlink\fR" 4 +.IX Item "-R, --replace-symlink" +将符号链接的目标替换为转换后的文件(原来的目标文件保持不变)。 +.IP "\fB\-S, \-\-skip\-symlink\fR" 4 +.IX Item "-S, --skip-symlink" +保持符号链接和其目标文件不变(默认)。 +.IP "\fB\-V, \-\-version\fR" 4 +.IX Item "-V, --version" +显示版本信息,然后退出。 +.SH "Mac模式" +.IX Header "Mac模式" +普通模式下,断行符将被转换为DOS格式,或相反。Mac格式的断行符将不会被转换。 +.PP +Mac模式下,Mac断行符将被转换为Unix格式,或相反。DOS断行符将不会被转换。 +.PP +若要以Mac模式运行,请使用命令行选项 \f(CW\*(C`\-c mac\*(C'\fR,或使用命令 \f(CW\*(C`mac2unix\*(C'\fR 或 \f(CW\*(C`unix2mac\*(C'\fR。 +.SH "转换模式" +.IX Header "转换模式" +.IP "\fBascii\fR" 4 +.IX Item "ascii" +在 \f(CW\*(C`ascii\*(C'\fR 模式下,只转换断行符。 这是默认的转换模式。 +.Sp +尽管此模式名叫“ASCII”(7位编码标准),实际上转换按照8位编码进行。转换UTF\-8编码文件时请务必使用此模式。 +.IP "\fB7bit\fR" 4 +.IX Item "7bit" +在此模式下,所以的8位非ASCII字符(取值范围128\-255)将被转换到7位编码空间。 +.IP "\fBiso\fR" 4 +.IX Item "iso" +Unix下,将在DOS字符集(编码页)和ISO字符集 ISO\-8859\-1(Latin\-1)之间进行转换。不具有 \s-1ISO\-8859\-1\s0 +中对等字符的DOS字符将会被转换为点号(“.”)。当 \s-1ISO\-8859\-1\s0 字符集中没有DOS中的对等字符时也是如此。 +.Sp +当只指定了 \f(CW\*(C`\-iso\*(C'\fR 选项时,dos2unix将尝试确定当前活动代码页。若无法确定,则使用默认代码页 +CP437(普遍用于美国)。若要强制指定代码页,请使用选项 +\&\f(CW\*(C`\-437\*(C'\fR(美国)、\f(CW\*(C`\-850\*(C'\fR(西欧)、\f(CW\*(C`\-860\*(C'\fR(葡萄牙)、\f(CW\*(C`\-863\*(C'\fR(法国、加拿大)或\f(CW\*(C`\-865\*(C'\fR(北欧)。 +Windows CP1252代码页(西欧)也可以通过选项 \f(CW\*(C`\-1252\*(C'\fR 获得支持。若要使用其他代码页,可以结合 \fIiconv\fR\|(1) +使用dos2unix。iconv可以在很多字符编码间进行转换。 +.Sp +不对Unicode编码文本使用ISO转换。因这一转换会导致UTF\-8编码文件损坏。 +.Sp +一些示例: +.Sp +从DOS默认编码页转换到Unix Latin\-1: +.Sp +.Vb 1 +\& dos2unix \-iso \-n in.txt out.txt +.Ve +.Sp +从DOS CP850转换到Unix Latin\-1: +.Sp +.Vb 1 +\& dos2unix \-850 \-n in.txt out.txt +.Ve +.Sp +从Windows CP1252转换到Unix Latin\-1: +.Sp +.Vb 1 +\& dos2unix \-1252 \-n in.txt out.txt +.Ve +.Sp +从WIndows CP1252转换到Unix UTF\-8(Unicode): +.Sp +.Vb 1 +\& iconv \-f CP1252 \-t UTF\-8 in.txt | dos2unix > out.txt +.Ve +.Sp +从Unix Latin\-1转换到DOS默认编码页: +.Sp +.Vb 1 +\& unix2dos \-iso \-n in.txt out.txt +.Ve +.Sp +从Unix Latin\-1转换到DOS CP850: +.Sp +.Vb 1 +\& unix2dos \-850 \-n in.txt out.txt +.Ve +.Sp +从Unix Latin\-1转换到Windows CP1252: +.Sp +.Vb 1 +\& unix2dos \-1252 \-n in.txt out.txt +.Ve +.Sp +从Unix UTF\-8(Unicode)转换到Windows CP1252: +.Sp +.Vb 1 +\& unix2dos < in.txt | iconv \-f UTF\-8 \-t CP1252 > out.txt +.Ve +.Sp +参见 et +。 +.SH "UNICODE" +.IX Header "UNICODE" +.SS "编码" +.IX Subsection "编码" +有几种不同的Unicode编码。对于Unix和Linux中的Unicode文件,通常为UTF\-8编码。Windows中的文本文件可以是UTF\-8、UTF\-16或UTF\-16BE编码,但大多采用UTF\-16格式。 +.SS "转换" +.IX Subsection "转换" +Unicode文本文件可以含有DOS、Unix或Mac断行符,就像普通文本文件一样。 +.PP +所有版本的dos2unix和unix2dos都可以转换UTF\-8文件,因为UTF\-8向后兼容ASCII。 +.PP +含有Unicode UTF\-16支持的dos2unix和unix2dos可以读取小尾序或大尾序的UTF\-16编码文本。输入 \f(CW\*(C`dos2unix \-V\*(C'\fR +来确定dos2unix在编译是是否启用了UTF\-16支持。 +.PP +在Unix/Linux中,UTF\-16编码文件将被转换为区域字符编码所指定的编码。可以使用 \fIlocale\fR\|(1) +命令来查看当前的区域字符编码。若无法转换,程序将报告转换错误并跳过此文件。 +.PP +在Windows中,UTF\-16文件被默认转换为UTF\-8格式。Windows和Unix/Linux均支持UTF\-8格式的文本文件。 +.PP +UTF\-16和UTF\-8编码相互兼容,所以彼此转换时不会丢失文本。倘若转换中出错,比如UTF\-16格式的输入文件含有错误,那么该文件将被跳过。 +.PP +若使用了 \f(CW\*(C`\-u\*(C'\fR 选项,输出文件将会使用和输入文件相同的UTF\-16编码。\f(CW\*(C`\-u\*(C'\fR选项将阻止程序转换到UTF\-8。 +.PP +dos2unix和unix2dos没有用于转换UTF\-8到UTF\-16的选项。 +.PP +ISO和7位编码模式的转换无法用于UTF\-16文件。 +.SS "字节序标记" +.IX Subsection "字节序标记" +在Windows中,文本文件一般含有字节序标记(BOM),因为很多Windows程序(包括记事本)默认添加BOM。参见 +。 +.PP +在Unix中,Unicode文件一般不含BOM。假定文本文件使用区域字符编码设置所指定的编码。 +.PP +dos2unix只能检测含有BOM文件的UTF\-16格式。若UTF\-16文件不含BOM,dos2unix会将其视作二进制文件。 +.PP +请使用选项 \f(CW\*(C`\-ul\*(C'\fR 或 \f(CW\*(C`\-ub\*(C'\fR 来转换不含BOM的UTF\-16文件。 +.PP +dos2unix默认不输出BOM。使用 \f(CW\*(C`\-b\*(C'\fR 选项可以让dos2unix将BOM添加到输出文件,如果输入文件也含有BOM的话。 +.PP +unix2dos默认输出BOM,如果输入文件也含有BOM的话。使用 \f(CW\*(C`\-r\*(C'\fR 可以移除BOM。 +.PP +若使用了 \f(CW\*(C`\-m\*(C'\fR 选项,dos2unix和unix2dos将总是输出BOM。 +.SS "Windows中Unicode文件的文件名" +.IX Subsection "Windows中Unicode文件的文件名" +dos2unix对于Windows命令提示符中读取和写入Unicode文件名有额外的支持。这意味着dos2unix可以打开那些包含非默认系统ANSI编码页字符的文件。若要查看Windows版dos2unix在编译时是否加入了Unicode文件名支持,请输入 +\&\f(CW\*(C`dos2unix \-V\*(C'\fR。 +.PP +在Windows终端中显示Unicode文件名有一些需要注意的问题。请参见 \f(CW\*(C`\-D\*(C'\fR 和 \f(CW\*(C`\-\-display\-enc\*(C'\fR +选项。文件名在终端中可能无法被正确显示,但写入文件时文件名仍然是正确的。 +.SS "Unicode示例" +.IX Subsection "Unicode示例" +转换Windows UTF\-16到Unix UTF\-8: +.PP +.Vb 1 +\& dos2unix \-n in.txt out.txt +.Ve +.PP +转换Windows UTF\-16LE(不含BOM)到Unix UTF\-8: +.PP +.Vb 1 +\& dos2unix \-ul \-n in.txt out.txt +.Ve +.PP +转换Unix UTF\-8到Windows UTF\-8(并添加BOM): +.PP +.Vb 1 +\& unix2dos \-m \-n in.txt out.txt +.Ve +.PP +转换Unix UTF\-8到Windows UTF\-16: +.PP +.Vb 1 +\& unix2dos < in.txt | iconv \-f UTF\-8 \-t UTF\-16 > out.txt +.Ve +.SH "GB18030" +.IX Header "GB18030" +GB18030是中国国家标准。GB18030标准的一系列子集被强制应用于中国销售的软件产品。参见 +。 +.PP +GB18030与Unicode完全兼容,并且可以被认为是Unicode格式的变体。和UTF\-8一样,GB18030也兼容ASCII。GB18030也兼容Windows +936代码页(GBK)。 +.PP +在Unix/Linux中,若区域编码被设置为GB18030,UTF\-16文件将被转换为GB18030格式。注意只有当系统支持区域设置时这一才会进行这一转换。可以使用 +\&\f(CW\*(C`locale \-a\*(C'\fR 命令来获取受支持的区域。 +.PP +在Windows中,你需要使用 \f(CW\*(C`\-gb\*(C'\fR 选项来转换UTF\-16文件到GB18030编码。 +.PP +GB18030编码的文件和Unicode文件一样可以含有BOM。 +.SH "示例" +.IX Header "示例" +从标准输入读取,并输出到标准输出: +.PP +.Vb 2 +\& dos2unix +\& dos2unix \-l \-c mac +.Ve +.PP +转换并覆盖a.txt和b.txt: +.PP +.Vb 2 +\& dos2unix a.txt b.txt +\& dos2unix \-o a.txt b.txt +.Ve +.PP +转换并覆盖a.txt,使用ascii模式: +.PP +.Vb 1 +\& dos2unix a.txt +.Ve +.PP +转换并覆盖a.txt,使用ascii模式;转换并覆盖b.txt,使用7位编码模式: +.PP +.Vb 3 +\& dos2unix a.txt \-c 7bit b.txt +\& dos2unix \-c ascii a.txt \-c 7bit b.txt +\& dos2unix \-ascii a.txt \-7 b.txt +.Ve +.PP +将a.txt从Mac格式转换到Unix格式: +.PP +.Vb 2 +\& dos2unix \-c mac a.txt +\& mac2unix a.txt +.Ve +.PP +将a.txt从Unix格式转换到Mac格式: +.PP +.Vb 2 +\& unix2dos \-c mac a.txt +\& unix2mac a.txt +.Ve +.PP +转换并覆盖a.txt,保留原始时间戳: +.PP +.Vb 2 +\& dos2unix \-k a.txt +\& dos2unix \-k \-o a.txt +.Ve +.PP +转换a.txt,并输出到e.txt: +.PP +.Vb 1 +\& dos2unix \-n a.txt e.txt +.Ve +.PP +转换a.txt,并输出到e.txt,同时使e.txt的时间戳和a.txt一致: +.PP +.Vb 1 +\& dos2unix \-k \-n a.txt e.txt +.Ve +.PP +转换并覆盖a.txt;转换b.txt并输出到e.txt: +.PP +.Vb 2 +\& dos2unix a.txt \-n b.txt e.txt +\& dos2unix \-o a.txt \-n b.txt e.txt +.Ve +.PP +转换c.txt并输出到e.txt;转换并覆盖a.txt和b.txt;转换d.txt并输出到f.txt: +.PP +.Vb 1 +\& dos2unix \-n c.txt e.txt \-o a.txt b.txt \-n d.txt f.txt +.Ve +.SH "递归转换" +.IX Header "递归转换" +结合 \fIfind\fR\|(1) 和 \fIxargs\fR\|(1) 使用dos2unix可以递归地转换目录树中的文本文件。例如,转换当前目录的目录树中所有的.txt文件: +.PP +.Vb 1 +\& find . \-name \*(Aq*.txt\*(Aq |xargs dos2unix +.Ve +.PP +在Windows命令提示符中,可以使用下列命令: +.PP +.Vb 1 +\& for /R %G in (*.txt) do dos2unix "%G" +.Ve +.SH "区域" +.IX Header "区域" +.IP "\fB\s-1LANG\s0\fR" 4 +.IX Item "LANG" +LANG环境变量指定了程序所使用的首选语言。它包括几个部分:第一部分是小写的语言编码,第二部分是(可选的)大写的国家/地区代码,前面用下划线连接;第三部分也是可选的,即字符编码,前面用点连接。一些POSIX规范的示例如下: +.Sp +.Vb 7 +\& export LANG=zh 中文 +\& export LANG=zh_CN 中文,中国 +\& export LANG=zh_TW 中文,台湾 +\& export LANG=es_ES 西班牙语,西班牙 +\& export LANG=es_MX 西班牙语,墨西哥 +\& export LANG=en_US.iso88591 英语,美国,Latin\-1编码 +\& export LANG=en_GB.UTF\-8 英语,英国,UTF\-8编码 +.Ve +.Sp +完整的语言和国家/地区编码可以在gettext手册中找到: +.Sp +在Unix系统中,你可以使用 \fIlocale\fR\|(1) 命令获取特定区域的信息。 +.IP "\fB\s-1LANGUAGE\s0\fR" 4 +.IX Item "LANGUAGE" +可以使用LANGUAGE变量指定一系列语言的优先级,各项之间由冒号分割。dos2unix首先使用LANGUAGE变量,其次才是LANG。例如,首选中文、其次英文:\f(CW\*(C`LANGUAGE= +.Sp +如果你选择了一个不可用的语言,程序将会输出标准的英语信息。 +.IP "\fB\s-1DOS2UNIX_LOCALEDIR\s0\fR" 4 +.IX Item "DOS2UNIX_LOCALEDIR" +DOS2UNIX_LOCALEDIR环境变量将覆盖编译时设置的LOCALEDIR变量。LOCALEDIR被用于查找语言文件。GNU程序的默认值为 +\&\f(CW\*(C`/usr/local/share/locale\*(C'\fR。可以使用 \fB\-\-version\fR 查看当前的LOCALEDIR。 +.Sp +示例(POSIX shell): +.Sp +.Vb 1 +\& export DOS2UNIX_LOCALEDIR=$HOME/share/locale +.Ve +.SH "返回值" +.IX Header "返回值" +若成功,返回0。若出现系统错误,则返回最近一次系统错误号。若发生其他错误,返回1。 +.PP +在安静模式下,返回值总是为0,除非命令行选项有误。 +.SH "遵循规范" +.IX Header "遵循规范" + +.PP + +.PP + +.PP + +.SH "作者" +.IX Header "作者" +Benjamin Lin \- Bernd Johannes Wuebben(mac2unix模式) \- +,Christian Wurll(添加额外新行) \- ,Erwin +Waterlander \- (维护者) +.PP +项目主页: +.PP +SourceForge主页: +.SH "参见" +.IX Header "参见" +\&\fIfile\fR\|(1) \fIfind\fR\|(1) \fIiconv\fR\|(1) \fIlocale\fR\|(1) \fIxargs\fR\|(1) diff --git a/man/zh_CN/man1/dos2unix.htm b/man/zh_CN/man1/dos2unix.htm new file mode 100644 index 0000000..a74c11c --- /dev/null +++ b/man/zh_CN/man1/dos2unix.htm @@ -0,0 +1,717 @@ + + + + +dos2unix 7.3.1 - DOS/Mac - Unix文件格式转换器 + + + + + + + + + + +

名称

+ +

dos2unix - DOS/Mac - Unix文件格式转换器

+ +

概要

+ +
    dos2unix [选项] [文件 …] [-n 输入文件 输出文件 ...]
+    unix2dos [选项] [文件 …] [-n 输入文件 输出文件 ...]
+ +

说明

+ +

Dos2unix软件包包括工具dos2unixunix2dos,用于将纯文本文件在DOS或Mac格式与Unix格式之间相互转换。

+ +

DOS/Windows的文本文件中,断行符是由两个字符共同表示的:回车符(CR)和换行符(LF)。Unix的文本文件中,换行符则由单个换行符(LF)表示。而Mac的文本文件则由单个回车符(CR,用于Mac OS X之前的系统)或单个换行符(LF,用于当下的新Mac OS)表示。

+ +

除了断行符,Dos2unix还可以转换文件编码。一些DOS编码页可以被转换为Unix Latin-1,Windows Unicode(UTF-16)文件也可以被转换为Unix Unicode(UTF-8)文件。

+ +

二进制文件则会被自动跳过,除非指定了强制转换选项。

+ +

特殊文件,如目录和队列,会被自动跳过。

+ +

符号链接和其所指向的目标默认不会被转换。可以用选项来指定替换符号链接,或者将输出写入到链接目标。Windows下不支持写入到符号链接的目标。

+ +

Dos2unix由SunOS/Solaris下的版本改写而成。这两个版本间有一个重大差异:本版本默认进行原位转换(旧文件模式),而原来SunOS/Solaris下的版本只支持配对转换(新文件模式)。参见选项 -o-n

+ +

选项

+ +
+ +
--
+
+ +

将后面所有的选项当作文件名。如果你希望转换一个文件名以破折号开头的文件,可以使用这个选项。例如,要转换一个名为“-foo”的文件,你可以用这个命令:

+ +
    dos2unix -- -foo
+ +

或者在新文件模式中:

+ +
    dos2unix -n -- -foo out.txt
+ +
+
-ascii
+
+ +

只转换断行符。这是默认的转换模式。

+ +
+
-iso
+
+ +

在DOS和ISO-8859-1字符集之间转换。参见 CONVERSION MODES 一节。

+ +
+
-1252
+
+ +

使用Windows 1252 编码页(西欧)。

+ +
+
-437
+
+ +

使用DOS 437 编码页(美国)。这是ISO转换时的默认编码页。

+ +
+
-850
+
+ +

使用DOS 850 编码页(西欧)。

+ +
+
-860
+
+ +

使用DOS 860 编码页(葡萄牙)。

+ +
+
-863
+
+ +

使用DOS 863 编码页(加拿大法语)。

+ +
+
-865
+
+ +
 使用DOS 865 编码页(北欧)。
+ +
+
-7
+
+ +

将8位字符转换到7位空间。

+ +
+
-b, --keep-bom
+
+ +

保留字节序标记(BOM)。当输入文件含有BOM头时,也向输出文件写入BOM。这是转换到DOS断行符时的默认行为。参见选项 -r

+ +
+
-c, --convmode 转换模式
+
+ +

改变转换模式。转换模式可以为:ascii7bitisomac,默认为ascii。

+ +
+
-D, --display-enc ENCODAGE
+
+ +

设置显示文本的编码。编码可以为:ansiunicodeutf8,默认为ansi。

+ +

这一选项只对支持Unicode文件名的Windows版dos2unix有效。它对文件名的读写无效,只影响它们的显示结果。

+ +

在Windows控制台中,有几种可以根据文本编码来显示文本的方法。它们各有利弊。

+ +
+ +
ansi
+
+ +

dos2unix默认使用ANSI编码文本。优点是它能提供向后兼容性,并能用于raster和TrueType字体。在一些地方,你可能需要使用 chcp 命令将活动DOS OEM编码页设置为Windows系统ANSI编码页,因为dos2unix使用Windows系统编码页。

+ +

ansi的缺点是含有非系统默认编码页中字符的国际化文件名将无法被正确显示。你会看到一些问号或其他错误的字符。如果你不需要处理外文文件名,这一方法是不错的选择。

+ +
+
unicode
+
+ +

Unicode编码(Windows中对UTF-16的称呼)的优点是文本可以被正确显示,也无需改变活动编码页。你可能需要设置终端字体为TrueType以便正确显示国际化字符。如果TrueType字体中不包含某个字符,你会看到一个小方块,有时方块中还会有一个问号。

+ +

当你使用ConEmu终端时,所以的文本将会被正确显示,因为ConEmu会自动选择合适的字体。

+ +

Unicode的缺点在于它与ASCII不兼容。当你将输出重定向到其他程序或文件时,它可能不那么容易控制。重定向到文件无法得到正确的UTF-16文件。

+ +
+
utf8
+
+ +

utf8的优点在于它与ASCII兼容,并且当你将输出重定向到文件时,文件将会为正确的UTF-8格式。你需要设置终端的字体为TrueType字体。使用TrueType字体可以使得文本得以正确显示,就像使用 unicode 编码时那样。

+ +

缺点是当你使用默认的raster字体时,所有的非ASCII字符将无法被正确显示。不仅是unicode文件名,连翻译的消息也无法被读取。在配置为东亚地区的Windows中,当终端中显示这些消息时你可能会看到闪烁现象。

+ +

在ConEmu终端中,utf编码方式可以正常工作。

+ +
+
+ +

默认的编码方式可以通过设置 DOS2UNIX_DISPLAY_ENC 环境变量为 unicodeutf8 来改变。

+ +
+
-f, --force
+
+ +

强制转换二进制文件。

+ +
+
-gb, --gb18030
+
+ +

在Windows中,UTF-16默认被转换为UTF-8格式,无论区域设置为何。请使用这一选项将UTF-16文件转换为GB18030格式。此选项只在Windows下有效。参加 GB18030 一节。

+ +
+
-h, --help
+
+ +

显示帮助,然后退出。

+ +
+
-i[标志], --info[=标志] 文件 …
+
+ +

显示文件信息。不进行转换。

+ +

将会显示下列信息(按顺序):DOS断行符的数量、Unix断行符的数量、Mac断行符的数量、是否有BOM、文本/二进制、文件名。

+ +

输出示例:

+ +
     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
+ +

可以为输出设置额外的标志(一个或多个)。

+ +
+ +
d
+
+ +

显示DOS断行符的数量。

+ +
+
u
+
+ +

显示Unix断行符的数量。

+ +
+
m
+
+ +

显示Mac断行符的数量。

+ +
+
b
+
+ +

显示BOM状况。

+ +
+
t
+
+ +

显示文件为文本或二进制。

+ +
+
c
+
+ +

只显示将会被转换的文件。

+ +

若设置了 c标志,dos2unix将只显示含有DOS断行符的文件,unix2dos将只显示含有Unix断行符的文件。

+ +
+
+ +

示例:

+ +

显示所有 *.txt 文件的信息:

+ +
    dos2unix -i *.txt
+ +

只显示DOS断行符和Unix断行符的数量:

+ +
    dos2unix -idu *.txt
+ +

只显示BOM状况:

+ +
    dos2unix --info=b *.txt
+ +

列出含有DOS断行符的文件:

+ +
    dos2unix -ic *.txt
+ +

列出含有Unix断行符的文件:

+ +
    unix2dos -ic *.txt
+ +

只转换含有DOS断行符的文件,保持其他文件不变:

+ +
    dos2unix -ic *.txt | xargs dos2unix
+ +

查找含有DOS断行符的文本文件:

+ +
    find -name '*.txt' | xargs dos2unix -ic
+ +
+
-k, --keepdate
+
+ +

将输入文件的时间戳应用到输出文件。

+ +
+
-L, --license
+
+ +

显示程序许可证。

+ +
+
-l, --newline
+
+ +

添加额外的新行。

+ +

dos2unix:只有DOS断行符会被转换为两个Unix断行符。在Mac模式下,只有Mac断行符会被转换为Unix断行符。

+ +

unix2dos:只有Unix断行符会被转换为两个DOS断行符。在Mac模式下,Unix断行符会被转换为两个Mac断行符。

+ +
+
-m, --add-bom
+
+ +

将字节序标记(BOM)写入到输出文件。默认情况下将写入UTF-8 BOM。

+ +

当输入文件为UTF-16格式,并且使用了 -u选项,将写入UTF-16 BOM。

+ +

当输出文件不是UTF-8、UTF-16或GB18030格式时,请不要使用此选项。参加 UNICODE 一节。

+ +
+
-n, --newline 输入文件 输出文件 ...
+
+ +

新文件模式。转换输入文件并写入到输出文件。文件名必须成对给出,并且 不能 使用通配符,否则你 将会丢失文件。

+ +

使用新文件(配对)模式转换时,命令执行者必须为文件的所有者。新文件的读/写权限将由源文件的权限减去命令执行者的 umask(1) 得到。

+ +
+
-o, --oldfile 文件 ...
+
+ +

旧文件模式。转换并将输出覆盖到源文件。程序默认使用此模式,允许使用通配符。

+ +

在旧文件(替换)模式下,被转换的文件的所有者、组和读/写权限保持不变。当文件被其他具有写权限的用户(如root)转换时,情况也是如此。如果无法保持这些值不变,转换将会终止。改变源文件的所有者可能造成其无法读取该文件,而改变组则可能带来安全隐患,使文件被不法分子读取。只有Unix才支持转换时保留所有者、组和读/写权限。

+ +
+
-q, --quiet
+
+ +

安静模式。不显示任何警告或信息。返回值为0,除非命令行选项有误。

+ +
+
-r, --remove-bom
+
+ +

移除字节序标记(BOM),不写入BOM到输出文件。这是转换到Unix断行符时的默认行为。参见选项 -b

+ +
+
-s, --safe
+
+ +

跳过二进制文件(默认)。

+ +
+
-u, --keep-utf16
+
+ +

保留输入文件的UTF-16编码。输出文件也使用UTF-16编码和相同的尾序。这将阻止转换到UTF-8。相应也会写入UTF-16 BOM。可以用 -ascii选项来禁止。

+ +
+
-ul, --assume-utf16le
+
+ +

假定输入文件格式为UTF-16LE。

+ +

输入文件中有BOM时,将会覆盖此选项。

+ +

如果你做了错误的假设(输入文件不为UTF-16LE格式),并且转换成功,你将会得到一个错误的UTF-8格式的文件。你可以用 iconv(1) 来撤销转换,将其从UTF-8转换回UTF-16LE。这样做可以恢复源文件。

+ +

对UTF-16LE的假定将根据 l<转换模式> 来工作。若改变了默认的 l<ascii> 模式,则这一假定将会被关闭。

+ +
+
-ub, --assume-utf16be
+
+ +

假定输入文件格式为UTF-16BE。

+ +

这一选项与 -ul 类似。

+ +
+
-v, --verbose
+
+ +

显示更多信息。将会显示有关BOM和转换统计的额外信息。

+ +
+ +
+ +

追踪符号链接并转换其目标。

+ +
+ +
+ +

将符号链接的目标替换为转换后的文件(原来的目标文件保持不变)。

+ +
+ +
+ +

保持符号链接和其目标文件不变(默认)。

+ +
+
-V, --version
+
+ +

显示版本信息,然后退出。

+ +
+
+ +

Mac模式

+ +

普通模式下,断行符将被转换为DOS格式,或相反。Mac格式的断行符将不会被转换。

+ +

Mac模式下,Mac断行符将被转换为Unix格式,或相反。DOS断行符将不会被转换。

+ +

若要以Mac模式运行,请使用命令行选项 -c mac,或使用命令 mac2unixunix2mac

+ +

转换模式

+ +
+ +
ascii
+
+ +

ascii 模式下,只转换断行符。 这是默认的转换模式。

+ +

尽管此模式名叫“ASCII”(7位编码标准),实际上转换按照8位编码进行。转换UTF-8编码文件时请务必使用此模式。

+ +
+
7bit
+
+ +

在此模式下,所以的8位非ASCII字符(取值范围128-255)将被转换到7位编码空间。

+ +
+
iso
+
+ +

Unix下,将在DOS字符集(编码页)和ISO字符集 ISO-8859-1(Latin-1)之间进行转换。不具有 ISO-8859-1 中对等字符的DOS字符将会被转换为点号(“.”)。当 ISO-8859-1 字符集中没有DOS中的对等字符时也是如此。

+ +

当只指定了 -iso 选项时,dos2unix将尝试确定当前活动代码页。若无法确定,则使用默认代码页 CP437(普遍用于美国)。若要强制指定代码页,请使用选项 -437(美国)、-850(西欧)、-860(葡萄牙)、-863(法国、加拿大)或-865(北欧)。 Windows CP1252代码页(西欧)也可以通过选项 -1252 获得支持。若要使用其他代码页,可以结合 iconv(1) 使用dos2unix。iconv可以在很多字符编码间进行转换。

+ +

不对Unicode编码文本使用ISO转换。因这一转换会导致UTF-8编码文件损坏。

+ +

一些示例:

+ +

从DOS默认编码页转换到Unix Latin-1:

+ +
    dos2unix -iso -n in.txt out.txt
+ +

从DOS CP850转换到Unix Latin-1:

+ +
    dos2unix -850 -n in.txt out.txt
+ +

从Windows CP1252转换到Unix Latin-1:

+ +
    dos2unix -1252 -n in.txt out.txt
+ +

从WIndows CP1252转换到Unix UTF-8(Unicode):

+ +
    iconv -f CP1252 -t UTF-8 in.txt | dos2unix > out.txt
+ +

从Unix Latin-1转换到DOS默认编码页:

+ +
    unix2dos -iso -n in.txt out.txt
+ +

从Unix Latin-1转换到DOS CP850:

+ +
    unix2dos -850 -n in.txt out.txt
+ +

从Unix Latin-1转换到Windows CP1252:

+ +
    unix2dos -1252 -n in.txt out.txt
+ +

从Unix UTF-8(Unicode)转换到Windows CP1252:

+ +
    unix2dos < in.txt | iconv -f UTF-8 -t CP1252 > out.txt
+ +

参见 http://czyborra.com/charsets/codepages.html et http://czyborra.com/charsets/iso8859.html

+ +
+
+ +

UNICODE

+ +

编码

+ +

有几种不同的Unicode编码。对于Unix和Linux中的Unicode文件,通常为UTF-8编码。Windows中的文本文件可以是UTF-8、UTF-16或UTF-16BE编码,但大多采用UTF-16格式。

+ +

转换

+ +

Unicode文本文件可以含有DOS、Unix或Mac断行符,就像普通文本文件一样。

+ +

所有版本的dos2unix和unix2dos都可以转换UTF-8文件,因为UTF-8向后兼容ASCII。

+ +

含有Unicode UTF-16支持的dos2unix和unix2dos可以读取小尾序或大尾序的UTF-16编码文本。输入 dos2unix -V 来确定dos2unix在编译是是否启用了UTF-16支持。

+ +

在Unix/Linux中,UTF-16编码文件将被转换为区域字符编码所指定的编码。可以使用 locale(1) 命令来查看当前的区域字符编码。若无法转换,程序将报告转换错误并跳过此文件。

+ +

在Windows中,UTF-16文件被默认转换为UTF-8格式。Windows和Unix/Linux均支持UTF-8格式的文本文件。

+ +

UTF-16和UTF-8编码相互兼容,所以彼此转换时不会丢失文本。倘若转换中出错,比如UTF-16格式的输入文件含有错误,那么该文件将被跳过。

+ +

若使用了 -u 选项,输出文件将会使用和输入文件相同的UTF-16编码。-u选项将阻止程序转换到UTF-8。

+ +

dos2unix和unix2dos没有用于转换UTF-8到UTF-16的选项。

+ +

ISO和7位编码模式的转换无法用于UTF-16文件。

+ +

字节序标记

+ +

在Windows中,文本文件一般含有字节序标记(BOM),因为很多Windows程序(包括记事本)默认添加BOM。参见 http://en.wikipedia.org/wiki/Byte_order_mark

+ +

在Unix中,Unicode文件一般不含BOM。假定文本文件使用区域字符编码设置所指定的编码。

+ +

dos2unix只能检测含有BOM文件的UTF-16格式。若UTF-16文件不含BOM,dos2unix会将其视作二进制文件。

+ +

请使用选项 -ul-ub 来转换不含BOM的UTF-16文件。

+ +

dos2unix默认不输出BOM。使用 -b 选项可以让dos2unix将BOM添加到输出文件,如果输入文件也含有BOM的话。

+ +

unix2dos默认输出BOM,如果输入文件也含有BOM的话。使用 -r 可以移除BOM。

+ +

若使用了 -m 选项,dos2unix和unix2dos将总是输出BOM。

+ +

Windows中Unicode文件的文件名

+ +

dos2unix对于Windows命令提示符中读取和写入Unicode文件名有额外的支持。这意味着dos2unix可以打开那些包含非默认系统ANSI编码页字符的文件。若要查看Windows版dos2unix在编译时是否加入了Unicode文件名支持,请输入 dos2unix -V

+ +

在Windows终端中显示Unicode文件名有一些需要注意的问题。请参见 -D--display-enc 选项。文件名在终端中可能无法被正确显示,但写入文件时文件名仍然是正确的。

+ +

Unicode示例

+ +

转换Windows UTF-16到Unix UTF-8:

+ +
    dos2unix -n in.txt out.txt
+ +

转换Windows UTF-16LE(不含BOM)到Unix UTF-8:

+ +
    dos2unix -ul -n in.txt out.txt
+ +

转换Unix UTF-8到Windows UTF-8(并添加BOM):

+ +
    unix2dos -m -n in.txt out.txt
+ +

转换Unix UTF-8到Windows UTF-16:

+ +
    unix2dos < in.txt | iconv -f UTF-8 -t UTF-16 > out.txt
+ +

GB18030

+ +

GB18030是中国国家标准。GB18030标准的一系列子集被强制应用于中国销售的软件产品。参见 http://en.wikipedia.org/wiki/GB_18030

+ +

GB18030与Unicode完全兼容,并且可以被认为是Unicode格式的变体。和UTF-8一样,GB18030也兼容ASCII。GB18030也兼容Windows 936代码页(GBK)。

+ +

在Unix/Linux中,若区域编码被设置为GB18030,UTF-16文件将被转换为GB18030格式。注意只有当系统支持区域设置时这一才会进行这一转换。可以使用 locale -a 命令来获取受支持的区域。

+ +

在Windows中,你需要使用 -gb 选项来转换UTF-16文件到GB18030编码。

+ +

GB18030编码的文件和Unicode文件一样可以含有BOM。

+ +

示例

+ +

从标准输入读取,并输出到标准输出:

+ +
    dos2unix
+    dos2unix -l -c mac
+ +

转换并覆盖a.txt和b.txt:

+ +
    dos2unix a.txt b.txt
+    dos2unix -o a.txt b.txt
+ +

转换并覆盖a.txt,使用ascii模式:

+ +
    dos2unix a.txt
+ +

转换并覆盖a.txt,使用ascii模式;转换并覆盖b.txt,使用7位编码模式:

+ +
    dos2unix a.txt -c 7bit b.txt
+    dos2unix -c ascii a.txt -c 7bit b.txt
+    dos2unix -ascii a.txt -7 b.txt
+ +

将a.txt从Mac格式转换到Unix格式:

+ +
    dos2unix -c mac a.txt
+    mac2unix a.txt
+ +

将a.txt从Unix格式转换到Mac格式:

+ +
    unix2dos -c mac a.txt
+    unix2mac a.txt
+ +

转换并覆盖a.txt,保留原始时间戳:

+ +
    dos2unix -k a.txt
+    dos2unix -k -o a.txt
+ +

转换a.txt,并输出到e.txt:

+ +
    dos2unix -n a.txt e.txt
+ +

转换a.txt,并输出到e.txt,同时使e.txt的时间戳和a.txt一致:

+ +
    dos2unix -k -n a.txt e.txt
+ +

转换并覆盖a.txt;转换b.txt并输出到e.txt:

+ +
    dos2unix a.txt -n b.txt e.txt
+    dos2unix -o a.txt -n b.txt e.txt
+ +

转换c.txt并输出到e.txt;转换并覆盖a.txt和b.txt;转换d.txt并输出到f.txt:

+ +
    dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt
+ +

递归转换

+ +

结合 find(1) 和 xargs(1) 使用dos2unix可以递归地转换目录树中的文本文件。例如,转换当前目录的目录树中所有的.txt文件:

+ +
    find . -name '*.txt' |xargs dos2unix
+ +

在Windows命令提示符中,可以使用下列命令:

+ +
    for /R %G in (*.txt) do dos2unix "%G"
+ +

区域

+ +
+ +
LANG
+
+ +

LANG环境变量指定了程序所使用的首选语言。它包括几个部分:第一部分是小写的语言编码,第二部分是(可选的)大写的国家/地区代码,前面用下划线连接;第三部分也是可选的,即字符编码,前面用点连接。一些POSIX规范的示例如下:

+ +
    export LANG=zh               中文
+    export LANG=zh_CN            中文,中国
+    export LANG=zh_TW            中文,台湾
+    export LANG=es_ES            西班牙语,西班牙
+    export LANG=es_MX            西班牙语,墨西哥
+    export LANG=en_US.iso88591   英语,美国,Latin-1编码
+    export LANG=en_GB.UTF-8      英语,英国,UTF-8编码
+ +

完整的语言和国家/地区编码可以在gettext手册中找到:http://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html

+ +

在Unix系统中,你可以使用 locale(1) 命令获取特定区域的信息。

+ +
+
LANGUAGE
+
+ +

可以使用LANGUAGE变量指定一系列语言的优先级,各项之间由冒号分割。dos2unix首先使用LANGUAGE变量,其次才是LANG。例如,首选中文、其次英文:LANGUAGE=<zh:en。在使用语言优先级之前,必须先启用区域化功能,即将LANG(或LC_ALL)变量设置为除了“C”以外的其他值。参见gettext手册:http://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html

+ +

如果你选择了一个不可用的语言,程序将会输出标准的英语信息。

+ +
+
DOS2UNIX_LOCALEDIR
+
+ +

DOS2UNIX_LOCALEDIR环境变量将覆盖编译时设置的LOCALEDIR变量。LOCALEDIR被用于查找语言文件。GNU程序的默认值为 /usr/local/share/locale。可以使用 --version 查看当前的LOCALEDIR。

+ +

示例(POSIX shell):

+ +
    export DOS2UNIX_LOCALEDIR=$HOME/share/locale
+ +
+
+ +

返回值

+ +

若成功,返回0。若出现系统错误,则返回最近一次系统错误号。若发生其他错误,返回1。

+ +

在安静模式下,返回值总是为0,除非命令行选项有误。

+ +

遵循规范

+ +

http://en.wikipedia.org/wiki/Text_file

+ +

http://en.wikipedia.org/wiki/Carriage_return

+ +

http://en.wikipedia.org/wiki/Newline

+ +

http://en.wikipedia.org/wiki/Unicode

+ +

作者

+ +

Benjamin Lin - <blin@socs.uts.edu.au> Bernd Johannes Wuebben(mac2unix模式) - <wuebben@kde.org>,Christian Wurll(添加额外新行) - <wurll@ira.uka.de>,Erwin Waterlander - <waterlan@xs4all.nl>(维护者)

+ +

项目主页:http://waterlan.home.xs4all.nl/dos2unix.html

+ +

SourceForge主页:http://sourceforge.net/projects/dos2unix/

+ +

参见

+ +

file(1) find(1) iconv(1) locale(1) xargs(1)

+ + + + + + + diff --git a/man/zh_CN/man1/dos2unix.po b/man/zh_CN/man1/dos2unix.po new file mode 100644 index 0000000..42d450f --- /dev/null +++ b/man/zh_CN/man1/dos2unix.po @@ -0,0 +1,1601 @@ +# Chinese (simplified) translations for dos2unix-man. +# Copyright (C) 2014 Erwin Waterlander (msgids) +# This file is distributed under the same license as the dos2unix package. +# zwpwjwtz , 2015. +msgid "" +msgstr "" +"Project-Id-Version: dos2unix-man-7.3.1-beta6\n" +"POT-Creation-Date: 2015-09-23 20:09+0200\n" +"PO-Revision-Date: 2015-09-24 18:56+0800\n" +"Last-Translator: zwpwjwtz \n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.8.4\n" + +#. type: =head1 +#: dos2unix.pod:52 +msgid "NAME" +msgstr "名称" + +#. type: textblock +#: dos2unix.pod:54 +msgid "dos2unix - DOS/Mac to Unix and vice versa text file format converter" +msgstr "dos2unix - DOS/Mac - Unix文件格式转换器" + +#. type: =head1 +#: dos2unix.pod:56 +msgid "SYNOPSIS" +msgstr "概要" + +#. type: verbatim +#: dos2unix.pod:58 +#, no-wrap +msgid "" +" dos2unix [options] [FILE ...] [-n INFILE OUTFILE ...]\n" +" unix2dos [options] [FILE ...] [-n INFILE OUTFILE ...]\n" +"\n" +msgstr "" +" dos2unix [选项] [文件 …] [-n 输入文件 输出文件 ...]\n" +" unix2dos [选项] [文件 …] [-n 输入文件 输出文件 ...]\n" +"\n" + +#. type: =head1 +#: dos2unix.pod:61 +msgid "DESCRIPTION" +msgstr "说明" + +#. type: textblock +#: dos2unix.pod:63 +msgid "The Dos2unix package includes utilities C and C to convert plain text files in DOS or Mac format to Unix format and vice versa." +msgstr "Dos2unix软件包包括工具C 和 C,用于将纯文本文件在DOS或Mac格式与Unix格式之间相互转换。" + +#. type: textblock +#: dos2unix.pod:66 +msgid "In DOS/Windows text files a line break, also known as newline, is a combination of two characters: a Carriage Return (CR) followed by a Line Feed (LF). In Unix text files a line break is a single character: the Line Feed (LF). In Mac text files, prior to Mac OS X, a line break was single Carriage Return (CR) character. Nowadays Mac OS uses Unix style (LF) line breaks." +msgstr "DOS/Windows的文本文件中,断行符是由两个字符共同表示的:回车符(CR)和换行符(LF)。Unix的文本文件中,换行符则由单个换行符(LF)表示。而Mac的文本文件则由单个回车符(CR,用于Mac OS X之前的系统)或单个换行符(LF,用于当下的新Mac OS)表示。" + +#. type: textblock +#: dos2unix.pod:72 +msgid "Besides line breaks Dos2unix can also convert the encoding of files. A few DOS code pages can be converted to Unix Latin-1. And Windows Unicode (UTF-16) files can be converted to Unix Unicode (UTF-8) files." +msgstr "除了断行符,Dos2unix还可以转换文件编码。一些DOS编码页可以被转换为Unix Latin-1,Windows Unicode(UTF-16)文件也可以被转换为Unix Unicode(UTF-8)文件。" + +#. type: textblock +#: dos2unix.pod:76 +msgid "Binary files are automatically skipped, unless conversion is forced." +msgstr "二进制文件则会被自动跳过,除非指定了强制转换选项。" + +#. type: textblock +#: dos2unix.pod:78 +msgid "Non-regular files, such as directories and FIFOs, are automatically skipped." +msgstr "特殊文件,如目录和队列,会被自动跳过。" + +#. type: textblock +#: dos2unix.pod:80 +msgid "Symbolic links and their targets are by default kept untouched. Symbolic links can optionally be replaced, or the output can be written to the symbolic link target. Writing to a symbolic link target is not supported on Windows." +msgstr "符号链接和其所指向的目标默认不会被转换。可以用选项来指定替换符号链接,或者将输出写入到链接目标。Windows下不支持写入到符号链接的目标。" + +#. type: textblock +#: dos2unix.pod:84 +msgid "Dos2unix was modelled after dos2unix under SunOS/Solaris. There is one important difference with the original SunOS/Solaris version. This version does by default in-place conversion (old file mode), while the original SunOS/Solaris version only supports paired conversion (new file mode). See also options C<-o> and C<-n>." +msgstr "Dos2unix由SunOS/Solaris下的版本改写而成。这两个版本间有一个重大差异:本版本默认进行原位转换(旧文件模式),而原来SunOS/Solaris下的版本只支持配对转换(新文件模式)。参见选项 C<-o> 和 C<-n>。" + +#. type: =head1 +#: dos2unix.pod:90 +msgid "OPTIONS" +msgstr "选项" + +#. type: =item +#: dos2unix.pod:94 +msgid "B<-->" +msgstr "B<-->" + +#. type: textblock +#: dos2unix.pod:96 +msgid "Treat all following options as file names. Use this option if you want to convert files whose names start with a dash. For instance to convert a file named \"-foo\", you can use this command:" +msgstr "将后面所有的选项当作文件名。如果你希望转换一个文件名以破折号开头的文件,可以使用这个选项。例如,要转换一个名为“-foo”的文件,你可以用这个命令:" + +#. type: verbatim +#: dos2unix.pod:100 +#, no-wrap +msgid "" +" dos2unix -- -foo\n" +"\n" +msgstr "" +" dos2unix -- -foo\n" +"\n" + +#. type: textblock +#: dos2unix.pod:102 +msgid "Or in new file mode:" +msgstr "或者在新文件模式中:" + +#. type: verbatim +#: dos2unix.pod:104 +#, no-wrap +msgid "" +" dos2unix -n -- -foo out.txt\n" +"\n" +msgstr "" +" dos2unix -n -- -foo out.txt\n" +"\n" + +#. type: =item +#: dos2unix.pod:106 +msgid "B<-ascii>" +msgstr "B<-ascii>" + +#. type: textblock +#: dos2unix.pod:108 +msgid "Convert only line breaks. This is the default conversion mode." +msgstr "只转换断行符。这是默认的转换模式。" + +#. type: =item +#: dos2unix.pod:110 +msgid "B<-iso>" +msgstr "B<-iso>" + +#. type: textblock +#: dos2unix.pod:112 +msgid "Conversion between DOS and ISO-8859-1 character set. See also section CONVERSION MODES." +msgstr "在DOS和ISO-8859-1字符集之间转换。参见 CONVERSION MODES 一节。" + +#. type: =item +#: dos2unix.pod:115 +msgid "B<-1252>" +msgstr "B<-1252>" + +#. type: textblock +#: dos2unix.pod:117 +msgid "Use Windows code page 1252 (Western European)." +msgstr "使用Windows 1252 编码页(西欧)。" + +#. type: =item +#: dos2unix.pod:119 +msgid "B<-437>" +msgstr "B<-437>" + +#. type: textblock +#: dos2unix.pod:121 +msgid "Use DOS code page 437 (US). This is the default code page used for ISO conversion." +msgstr "使用DOS 437 编码页(美国)。这是ISO转换时的默认编码页。" + +#. type: =item +#: dos2unix.pod:123 +msgid "B<-850>" +msgstr "B<-850>" + +#. type: textblock +#: dos2unix.pod:125 +msgid "Use DOS code page 850 (Western European)." +msgstr "使用DOS 850 编码页(西欧)。" + +#. type: =item +#: dos2unix.pod:127 +msgid "B<-860>" +msgstr "B<-860>" + +#. type: textblock +#: dos2unix.pod:129 +msgid "Use DOS code page 860 (Portuguese)." +msgstr "使用DOS 860 编码页(葡萄牙)。" + +#. type: =item +#: dos2unix.pod:131 +msgid "B<-863>" +msgstr "B<-863>" + +#. type: textblock +#: dos2unix.pod:133 +msgid "Use DOS code page 863 (French Canadian)." +msgstr "使用DOS 863 编码页(加拿大法语)。" + +#. type: =item +#: dos2unix.pod:135 +msgid "B<-865>" +msgstr "B<-865>" + +#. type: textblock +#: dos2unix.pod:137 +msgid "Use DOS code page 865 (Nordic)." +msgstr " 使用DOS 865 编码页(北欧)。" + +#. type: =item +#: dos2unix.pod:139 +msgid "B<-7>" +msgstr "B<-7>" + +#. type: textblock +#: dos2unix.pod:141 +msgid "Convert 8 bit characters to 7 bit space." +msgstr "将8位字符转换到7位空间。" + +#. type: =item +#: dos2unix.pod:143 +msgid "B<-b, --keep-bom>" +msgstr "B<-b, --keep-bom>" + +#. type: textblock +#: dos2unix.pod:145 +msgid "Keep Byte Order Mark (BOM). When the input file has a BOM, write a BOM in the output file. This is the default behavior when converting to DOS line breaks. See also option C<-r>." +msgstr "保留字节序标记(BOM)。当输入文件含有BOM头时,也向输出文件写入BOM。这是转换到DOS断行符时的默认行为。参见选项 C<-r>。" + +#. type: =item +#: dos2unix.pod:149 +msgid "B<-c, --convmode CONVMODE>" +msgstr "B<-c, --convmode 转换模式>" + +#. type: textblock +#: dos2unix.pod:151 +msgid "Set conversion mode. Where CONVMODE is one of: I, I<7bit>, I, I with ascii being the default." +msgstr "改变转换模式。转换模式可以为:I、I<7bit>、I或I,默认为ascii。" + +#. type: =item +#: dos2unix.pod:155 +msgid "B<-D, --display-enc ENCODING>" +msgstr "B<-D, --display-enc ENCODAGE>" + +#. type: textblock +#: dos2unix.pod:157 +msgid "Set encoding of displayed text. Where ENCODING is one of: I, I, I with ansi being the default." +msgstr "设置显示文本的编码。编码可以为:I、I、I,默认为ansi。" + +#. type: textblock +#: dos2unix.pod:161 +msgid "This option is only available in dos2unix for Windows with Unicode file name support. This option has no effect on the actual file names read and written, only on how they are displayed." +msgstr "这一选项只对支持Unicode文件名的Windows版dos2unix有效。它对文件名的读写无效,只影响它们的显示结果。" + +#. type: textblock +#: dos2unix.pod:165 +msgid "There are several methods for displaying text in a Windows console based on the encoding of the text. They all have their own advantages and disadvantages." +msgstr "在Windows控制台中,有几种可以根据文本编码来显示文本的方法。它们各有利弊。" + +#. type: =item +#: dos2unix.pod:171 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:173 +msgid "Dos2unix's default method is to use ANSI encoded text. The advantage is that it is backwards compatible. It works with raster and TrueType fonts. In some regions you may need to change the active DOS OEM code page to the Windows system ANSI code page using the C command, because dos2unix uses the Windows system code page." +msgstr "dos2unix默认使用ANSI编码文本。优点是它能提供向后兼容性,并能用于raster和TrueType字体。在一些地方,你可能需要使用 C 命令将活动DOS OEM编码页设置为Windows系统ANSI编码页,因为dos2unix使用Windows系统编码页。" + +#. type: textblock +#: dos2unix.pod:179 +msgid "The disadvantage of ansi is that international file names with characters not inside the system default code page are not displayed properly. You will see a question mark, or a wrong symbol instead. When you don't work with foreign file names this method is OK." +msgstr "ansi的缺点是含有非系统默认编码页中字符的国际化文件名将无法被正确显示。你会看到一些问号或其他错误的字符。如果你不需要处理外文文件名,这一方法是不错的选择。" + +#. type: =item +#: dos2unix.pod:184 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:186 +msgid "The advantage of unicode (the Windows name for UTF-16) encoding is that text is usually properly displayed. There is no need to change the active code page. You may need to set the console's font to a TrueType font to have international characters displayed properly. When a character is not included in the TrueType font you usually see a small square, sometimes with a question mark in it." +msgstr "Unicode编码(Windows中对UTF-16的称呼)的优点是文本可以被正确显示,也无需改变活动编码页。你可能需要设置终端字体为TrueType以便正确显示国际化字符。如果TrueType字体中不包含某个字符,你会看到一个小方块,有时方块中还会有一个问号。" + +#. type: textblock +#: dos2unix.pod:192 +msgid "When you use the ConEmu console all text is displayed properly, because ConEmu automatically selects a good font." +msgstr "当你使用ConEmu终端时,所以的文本将会被正确显示,因为ConEmu会自动选择合适的字体。" + +#. type: textblock +#: dos2unix.pod:195 +msgid "The disadvantage of unicode is that it is not compatible with ASCII. The output is not easy to handle when you redirect it to another program or a file. Redirection to a file does not give a correct UTF-16 file." +msgstr "Unicode的缺点在于它与ASCII不兼容。当你将输出重定向到其他程序或文件时,它可能不那么容易控制。重定向到文件无法得到正确的UTF-16文件。" + +#. type: =item +#: dos2unix.pod:199 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:201 +msgid "The advantage of utf8 is that it is compatible with ASCII and when you redirect it to a file you get a proper UTF-8 file. You need to set the console's font to a TrueType font. With a TrueType font the text is displayed similar as with the C encoding." +msgstr "utf8的优点在于它与ASCII兼容,并且当你将输出重定向到文件时,文件将会为正确的UTF-8格式。你需要设置终端的字体为TrueType字体。使用TrueType字体可以使得文本得以正确显示,就像使用 C 编码时那样。" + +#. type: textblock +#: dos2unix.pod:206 +msgid "The disadvantage is that when you use the default raster font all non-ASCII characters are displayed wrong. Not only unicode file names, but also translated messages become unreadable. On Windows configured for an East-Asian region you may see a lot of flickering of the console when the messages are displayed." +msgstr "缺点是当你使用默认的raster字体时,所有的非ASCII字符将无法被正确显示。不仅是unicode文件名,连翻译的消息也无法被读取。在配置为东亚地区的Windows中,当终端中显示这些消息时你可能会看到闪烁现象。" + +#. type: textblock +#: dos2unix.pod:212 +msgid "In a ConEmu console the utf8 encoding method works well." +msgstr "在ConEmu终端中,utf编码方式可以正常工作。" + +#. type: textblock +#: dos2unix.pod:216 +msgid "The default encoding can be changed with environment variable DOS2UNIX_DISPLAY_ENC by setting it to C or C." +msgstr "默认的编码方式可以通过设置 DOS2UNIX_DISPLAY_ENC 环境变量为 C 或 C 来改变。" + +#. type: =item +#: dos2unix.pod:219 +msgid "B<-f, --force>" +msgstr "B<-f, --force>" + +#. type: textblock +#: dos2unix.pod:221 +msgid "Force conversion of binary files." +msgstr "强制转换二进制文件。" + +#. type: =item +#: dos2unix.pod:223 +msgid "B<-gb, --gb18030>" +msgstr "B<-gb, --gb18030>" + +#. type: textblock +#: dos2unix.pod:225 +msgid "On Windows UTF-16 files are by default converted to UTF-8, regardless of the locale setting. Use this option to convert UTF-16 files to GB18030. This option is only available on Windows. See also section GB18030." +msgstr "在Windows中,UTF-16默认被转换为UTF-8格式,无论区域设置为何。请使用这一选项将UTF-16文件转换为GB18030格式。此选项只在Windows下有效。参加 GB18030 一节。" + +#. type: =item +#: dos2unix.pod:229 +msgid "B<-h, --help>" +msgstr "B<-h, --help>" + +#. type: textblock +#: dos2unix.pod:231 +msgid "Display help and exit." +msgstr "显示帮助,然后退出。" + +#. type: =item +#: dos2unix.pod:233 +msgid "B<-i[FLAGS], --info[=FLAGS] FILE ...>" +msgstr "B<-i[标志], --info[=标志] 文件 …>" + +#. type: textblock +#: dos2unix.pod:235 +msgid "Display file information. No conversion is done." +msgstr "显示文件信息。不进行转换。" + +#. type: textblock +#: dos2unix.pod:237 +msgid "The following information is printed, in this order: number of DOS line breaks, number of Unix line breaks, number of Mac line breaks, byte order mark, text or binary, file name." +msgstr "将会显示下列信息(按顺序):DOS断行符的数量、Unix断行符的数量、Mac断行符的数量、是否有BOM、文本/二进制、文件名。" + +#. type: textblock +#: dos2unix.pod:241 +msgid "Example output:" +msgstr "输出示例:" + +#. type: verbatim +#: dos2unix.pod:243 +#, no-wrap +msgid "" +" 6 0 0 no_bom text dos.txt\n" +" 0 6 0 no_bom text unix.txt\n" +" 0 0 6 no_bom text mac.txt\n" +" 6 6 6 no_bom text mixed.txt\n" +" 50 0 0 UTF-16LE text utf16le.txt\n" +" 0 50 0 no_bom text utf8unix.txt\n" +" 50 0 0 UTF-8 text utf8dos.txt\n" +" 2 418 219 no_bom binary dos2unix.exe\n" +"\n" +msgstr "" +" 6 0 0 no_bom text dos.txt\n" +" 0 6 0 no_bom text unix.txt\n" +" 0 0 6 no_bom text mac.txt\n" +" 6 6 6 no_bom text mixed.txt\n" +" 50 0 0 UTF-16LE text utf16le.txt\n" +" 0 50 0 no_bom text utf8unix.txt\n" +" 50 0 0 UTF-8 text utf8dos.txt\n" +" 2 418 219 no_bom binary dos2unix.exe\n" +"\n" + +#. type: textblock +#: dos2unix.pod:252 +msgid "Optionally extra flags can be set to change the output. One or more flags can be added." +msgstr "可以为输出设置额外的标志(一个或多个)。" + +#. type: =item +#: dos2unix.pod:257 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:259 +msgid "Print number of DOS line breaks." +msgstr "显示DOS断行符的数量。" + +#. type: =item +#: dos2unix.pod:261 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:263 +msgid "Print number of Unix line breaks." +msgstr "显示Unix断行符的数量。" + +#. type: =item +#: dos2unix.pod:265 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:267 +msgid "Print number of Mac line breaks." +msgstr "显示Mac断行符的数量。" + +#. type: =item +#: dos2unix.pod:269 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:271 +msgid "Print the byte order mark." +msgstr "显示BOM状况。" + +#. type: =item +#: dos2unix.pod:273 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:275 +msgid "Print if file is text or binary." +msgstr "显示文件为文本或二进制。" + +#. type: =item +#: dos2unix.pod:277 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:279 +msgid "Print only the files that would be converted." +msgstr "只显示将会被转换的文件。" + +#. type: textblock +#: dos2unix.pod:281 +msgid "With the C flag dos2unix will print only the files that contain DOS line breaks, unix2dos will print only file names that have Unix line breaks." +msgstr "若设置了 C标志,dos2unix将只显示含有DOS断行符的文件,unix2dos将只显示含有Unix断行符的文件。" + +#. type: textblock +#: dos2unix.pod:286 +msgid "Examples:" +msgstr "示例:" + +#. type: textblock +#: dos2unix.pod:288 +msgid "Show information for all *.txt files:" +msgstr "显示所有 *.txt 文件的信息:" + +#. type: verbatim +#: dos2unix.pod:290 +#, no-wrap +msgid "" +" dos2unix -i *.txt\n" +"\n" +msgstr "" +" dos2unix -i *.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:292 +msgid "Show only the number of DOS line breaks and Unix line breaks:" +msgstr "只显示DOS断行符和Unix断行符的数量:" + +#. type: verbatim +#: dos2unix.pod:294 +#, no-wrap +msgid "" +" dos2unix -idu *.txt\n" +"\n" +msgstr "" +" dos2unix -idu *.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:296 +msgid "Show only the byte order mark:" +msgstr "只显示BOM状况:" + +#. type: verbatim +#: dos2unix.pod:298 +#, no-wrap +msgid "" +" dos2unix --info=b *.txt\n" +"\n" +msgstr "" +" dos2unix --info=b *.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:300 +msgid "List the files that have DOS line breaks:" +msgstr "列出含有DOS断行符的文件:" + +#. type: verbatim +#: dos2unix.pod:302 +#, no-wrap +msgid "" +" dos2unix -ic *.txt\n" +"\n" +msgstr "" +" dos2unix -ic *.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:304 +msgid "List the files that have Unix line breaks:" +msgstr "列出含有Unix断行符的文件:" + +#. type: verbatim +#: dos2unix.pod:306 +#, no-wrap +msgid "" +" unix2dos -ic *.txt\n" +"\n" +msgstr "" +" unix2dos -ic *.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:308 +msgid "Convert only files that have DOS line breaks and leave the other files untouched:" +msgstr "只转换含有DOS断行符的文件,保持其他文件不变:" + +#. type: verbatim +#: dos2unix.pod:310 +#, no-wrap +msgid "" +" dos2unix -ic *.txt | xargs dos2unix\n" +"\n" +msgstr "" +" dos2unix -ic *.txt | xargs dos2unix\n" +"\n" + +#. type: textblock +#: dos2unix.pod:312 +msgid "Find text files that have DOS line breaks:" +msgstr "查找含有DOS断行符的文本文件:" + +#. type: verbatim +#: dos2unix.pod:314 +#, no-wrap +msgid "" +" find -name '*.txt' | xargs dos2unix -ic\n" +"\n" +msgstr "" +" find -name '*.txt' | xargs dos2unix -ic\n" +"\n" + +#. type: =item +#: dos2unix.pod:316 +msgid "B<-k, --keepdate>" +msgstr "B<-k, --keepdate>" + +#. type: textblock +#: dos2unix.pod:318 +msgid "Keep the date stamp of output file same as input file." +msgstr "将输入文件的时间戳应用到输出文件。" + +#. type: =item +#: dos2unix.pod:320 +msgid "B<-L, --license>" +msgstr "B<-L, --license>" + +#. type: textblock +#: dos2unix.pod:322 +msgid "Display program's license." +msgstr "显示程序许可证。" + +#. type: =item +#: dos2unix.pod:324 +msgid "B<-l, --newline>" +msgstr "B<-l, --newline>" + +#. type: textblock +#: dos2unix.pod:326 +msgid "Add additional newline." +msgstr "添加额外的新行。" + +#. type: textblock +#: dos2unix.pod:328 +msgid "B: Only DOS line breaks are changed to two Unix line breaks. In Mac mode only Mac line breaks are changed to two Unix line breaks." +msgstr "B:只有DOS断行符会被转换为两个Unix断行符。在Mac模式下,只有Mac断行符会被转换为Unix断行符。" + +#. type: textblock +#: dos2unix.pod:332 +msgid "B: Only Unix line breaks are changed to two DOS line breaks. In Mac mode Unix line breaks are changed to two Mac line breaks." +msgstr "B:只有Unix断行符会被转换为两个DOS断行符。在Mac模式下,Unix断行符会被转换为两个Mac断行符。" + +#. type: =item +#: dos2unix.pod:335 +msgid "B<-m, --add-bom>" +msgstr "B<-m, --add-bom>" + +#. type: textblock +#: dos2unix.pod:337 +msgid "Write a Byte Order Mark (BOM) in the output file. By default an UTF-8 BOM is written." +msgstr "将字节序标记(BOM)写入到输出文件。默认情况下将写入UTF-8 BOM。" + +#. type: textblock +#: dos2unix.pod:340 +msgid "When the input file is UTF-16, and the option C<-u> is used, an UTF-16 BOM will be written." +msgstr "当输入文件为UTF-16格式,并且使用了 C<-u>选项,将写入UTF-16 BOM。" + +#. type: textblock +#: dos2unix.pod:343 +msgid "Never use this option when the output encoding is other than UTF-8, UTF-16, or GB18030. See also section UNICODE." +msgstr "当输出文件不是UTF-8、UTF-16或GB18030格式时,请不要使用此选项。参加 UNICODE 一节。" + +#. type: =item +#: dos2unix.pod:347 +msgid "B<-n, --newfile INFILE OUTFILE ...>" +msgstr "B<-n, --newline 输入文件 输出文件 ...>" + +#. type: textblock +#: dos2unix.pod:349 +msgid "New file mode. Convert file INFILE and write output to file OUTFILE. File names must be given in pairs and wildcard names should I be used or you I lose your files." +msgstr "新文件模式。转换输入文件并写入到输出文件。文件名必须成对给出,并且 I<不能> 使用通配符,否则你 I<将会>丢失文件。" + +#. type: textblock +#: dos2unix.pod:353 +msgid "The person who starts the conversion in new file (paired) mode will be the owner of the converted file. The read/write permissions of the new file will be the permissions of the original file minus the umask(1) of the person who runs the conversion." +msgstr "使用新文件(配对)模式转换时,命令执行者必须为文件的所有者。新文件的读/写权限将由源文件的权限减去命令执行者的 umask(1) 得到。" + +#. type: =item +#: dos2unix.pod:358 +msgid "B<-o, --oldfile FILE ...>" +msgstr "B<-o, --oldfile 文件 ...>" + +#. type: textblock +#: dos2unix.pod:360 +msgid "Old file mode. Convert file FILE and overwrite output to it. The program defaults to run in this mode. Wildcard names may be used." +msgstr "旧文件模式。转换并将输出覆盖到源文件。程序默认使用此模式,允许使用通配符。" + +#. type: textblock +#: dos2unix.pod:363 +msgid "In old file (in-place) mode the converted file gets the same owner, group, and read/write permissions as the original file. Also when the file is converted by another user who has write permissions on the file (e.g. user root). The conversion will be aborted when it is not possible to preserve the original values. Change of owner could mean that the original owner is not able to read the file any more. Change of group could be a security risk, the file could be made readable for persons for whom it is not intended. Preservation of owner, group, and read/write permissions is only supported on Unix." +msgstr "在旧文件(替换)模式下,被转换的文件的所有者、组和读/写权限保持不变。当文件被其他具有写权限的用户(如root)转换时,情况也是如此。如果无法保持这些值不变,转换将会终止。改变源文件的所有者可能造成其无法读取该文件,而改变组则可能带来安全隐患,使文件被不法分子读取。只有Unix才支持转换时保留所有者、组和读/写权限。" + +#. type: =item +#: dos2unix.pod:372 +msgid "B<-q, --quiet>" +msgstr "B<-q, --quiet>" + +#. type: textblock +#: dos2unix.pod:374 +msgid "Quiet mode. Suppress all warnings and messages. The return value is zero. Except when wrong command-line options are used." +msgstr "安静模式。不显示任何警告或信息。返回值为0,除非命令行选项有误。" + +#. type: =item +#: dos2unix.pod:377 +msgid "B<-r, --remove-bom>" +msgstr "B<-r, --remove-bom>" + +#. type: textblock +#: dos2unix.pod:379 +msgid "Remove Byte Order Mark (BOM). Do not write a BOM in the output file. This is the default behavior when converting to Unix line breaks. See also option C<-b>." +msgstr "移除字节序标记(BOM),不写入BOM到输出文件。这是转换到Unix断行符时的默认行为。参见选项 C<-b>。" + +#. type: =item +#: dos2unix.pod:383 +msgid "B<-s, --safe>" +msgstr "B<-s, --safe>" + +#. type: textblock +#: dos2unix.pod:385 +msgid "Skip binary files (default)." +msgstr "跳过二进制文件(默认)。" + +#. type: =item +#: dos2unix.pod:387 +msgid "B<-u, --keep-utf16>" +msgstr "B<-u, --keep-utf16>" + +#. type: textblock +#: dos2unix.pod:389 +msgid "Keep the original UTF-16 encoding of the input file. The output file will be written in the same UTF-16 encoding, little or big endian, as the input file. This prevents transformation to UTF-8. An UTF-16 BOM will be written accordingly. This option can be disabled with the C<-ascii> option." +msgstr "保留输入文件的UTF-16编码。输出文件也使用UTF-16编码和相同的尾序。这将阻止转换到UTF-8。相应也会写入UTF-16 BOM。可以用 C<-ascii>选项来禁止。" + +#. type: =item +#: dos2unix.pod:394 +msgid "B<-ul, --assume-utf16le>" +msgstr "B<-ul, --assume-utf16le>" + +#. type: textblock +#: dos2unix.pod:396 +msgid "Assume that the input file format is UTF-16LE." +msgstr "假定输入文件格式为UTF-16LE。" + +#. type: textblock +#: dos2unix.pod:398 +msgid "When there is a Byte Order Mark in the input file the BOM has priority over this option." +msgstr "输入文件中有BOM时,将会覆盖此选项。" + +#. type: textblock +#: dos2unix.pod:401 +msgid "When you made a wrong assumption (the input file was not in UTF-16LE format) and the conversion succeeded, you will get an UTF-8 output file with wrong text. You can undo the wrong conversion with iconv(1) by converting the UTF-8 output file back to UTF-16LE. This will bring back the original file." +msgstr "如果你做了错误的假设(输入文件不为UTF-16LE格式),并且转换成功,你将会得到一个错误的UTF-8格式的文件。你可以用 iconv(1) 来撤销转换,将其从UTF-8转换回UTF-16LE。这样做可以恢复源文件。" + +#. type: textblock +#: dos2unix.pod:406 +msgid "The assumption of UTF-16LE works as a I. By switching to the default I mode the UTF-16LE assumption is turned off." +msgstr "对UTF-16LE的假定将根据 l<转换模式> 来工作。若改变了默认的 l 模式,则这一假定将会被关闭。" + +#. type: =item +#: dos2unix.pod:409 +msgid "B<-ub, --assume-utf16be>" +msgstr "B<-ub, --assume-utf16be>" + +#. type: textblock +#: dos2unix.pod:411 +msgid "Assume that the input file format is UTF-16BE." +msgstr "假定输入文件格式为UTF-16BE。" + +#. type: textblock +#: dos2unix.pod:413 +msgid "This option works the same as option C<-ul>." +msgstr "这一选项与 C<-ul> 类似。" + +#. type: =item +#: dos2unix.pod:415 +msgid "B<-v, --verbose>" +msgstr "B<-v, --verbose>" + +#. type: textblock +#: dos2unix.pod:417 +msgid "Display verbose messages. Extra information is displayed about Byte Order Marks and the amount of converted line breaks." +msgstr "显示更多信息。将会显示有关BOM和转换统计的额外信息。" + +#. type: =item +#: dos2unix.pod:420 +msgid "B<-F, --follow-symlink>" +msgstr "B<-F, --follow-symlink>" + +#. type: textblock +#: dos2unix.pod:422 +msgid "Follow symbolic links and convert the targets." +msgstr "追踪符号链接并转换其目标。" + +#. type: =item +#: dos2unix.pod:424 +msgid "B<-R, --replace-symlink>" +msgstr "B<-R, --replace-symlink>" + +#. type: textblock +#: dos2unix.pod:426 +msgid "Replace symbolic links with converted files (original target files remain unchanged)." +msgstr "将符号链接的目标替换为转换后的文件(原来的目标文件保持不变)。" + +#. type: =item +#: dos2unix.pod:429 +msgid "B<-S, --skip-symlink>" +msgstr "B<-S, --skip-symlink>" + +#. type: textblock +#: dos2unix.pod:431 +msgid "Keep symbolic links and targets unchanged (default)." +msgstr "保持符号链接和其目标文件不变(默认)。" + +#. type: =item +#: dos2unix.pod:433 +msgid "B<-V, --version>" +msgstr "B<-V, --version>" + +#. type: textblock +#: dos2unix.pod:435 +msgid "Display version information and exit." +msgstr "显示版本信息,然后退出。" + +#. type: =head1 +#: dos2unix.pod:439 +msgid "MAC MODE" +msgstr "Mac模式" + +#. type: textblock +#: dos2unix.pod:441 +msgid "In normal mode line breaks are converted from DOS to Unix and vice versa. Mac line breaks are not converted." +msgstr "普通模式下,断行符将被转换为DOS格式,或相反。Mac格式的断行符将不会被转换。" + +#. type: textblock +#: dos2unix.pod:444 +msgid "In Mac mode line breaks are converted from Mac to Unix and vice versa. DOS line breaks are not changed." +msgstr "Mac模式下,Mac断行符将被转换为Unix格式,或相反。DOS断行符将不会被转换。" + +#. type: textblock +#: dos2unix.pod:447 +msgid "To run in Mac mode use the command-line option C<-c mac> or use the commands C or C." +msgstr "若要以Mac模式运行,请使用命令行选项 C<-c mac>,或使用命令 C 或 C。" + +#. type: =head1 +#: dos2unix.pod:450 +msgid "CONVERSION MODES" +msgstr "转换模式" + +#. type: =item +#: dos2unix.pod:454 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:456 +msgid "In mode C only line breaks are converted. This is the default conversion mode." +msgstr "在 C 模式下,只转换断行符。 这是默认的转换模式。" + +#. type: textblock +#: dos2unix.pod:459 +msgid "Although the name of this mode is ASCII, which is a 7 bit standard, the actual mode is 8 bit. Use always this mode when converting Unicode UTF-8 files." +msgstr "尽管此模式名叫“ASCII”(7位编码标准),实际上转换按照8位编码进行。转换UTF-8编码文件时请务必使用此模式。" + +#. type: =item +#: dos2unix.pod:463 +msgid "B<7bit>" +msgstr "B<7bit>" + +#. type: textblock +#: dos2unix.pod:465 +msgid "In this mode all 8 bit non-ASCII characters (with values from 128 to 255) are converted to a 7 bit space." +msgstr "在此模式下,所以的8位非ASCII字符(取值范围128-255)将被转换到7位编码空间。" + +#. type: =item +#: dos2unix.pod:468 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:470 +msgid "Characters are converted between a DOS character set (code page) and ISO character set ISO-8859-1 (Latin-1) on Unix. DOS characters without ISO-8859-1 equivalent, for which conversion is not possible, are converted to a dot. The same counts for ISO-8859-1 characters without DOS counterpart." +msgstr "Unix下,将在DOS字符集(编码页)和ISO字符集 ISO-8859-1(Latin-1)之间进行转换。不具有 ISO-8859-1 中对等字符的DOS字符将会被转换为点号(“.”)。当 ISO-8859-1 字符集中没有DOS中的对等字符时也是如此。" + +#. type: textblock +#: dos2unix.pod:475 +msgid "When only option C<-iso> is used dos2unix will try to determine the active code page. When this is not possible dos2unix will use default code page CP437, which is mainly used in the USA. To force a specific code page use options C<-437> (US), C<-850> (Western European), C<-860> (Portuguese), C<-863> (French Canadian), or C<-865> (Nordic). Windows code page CP1252 (Western European) is also supported with option C<-1252>. For other code pages use dos2unix in combination with iconv(1). Iconv can convert between a long list of character encodings." +msgstr "" +"当只指定了 C<-iso> 选项时,dos2unix将尝试确定当前活动代码页。若无法确定,则使用默认代码页 CP437(普遍用于美国)。若要强制指定代码页,请使用选项 C<-437>(美国)、C<-850>(西欧)、C<-860>(葡萄牙)、C<-863>(法国、加拿大)或C<-865>(北欧)。\n" +"Windows CP1252代码页(西欧)也可以通过选项 C<-1252> 获得支持。若要使用其他代码页,可以结合 iconv(1) 使用dos2unix。iconv可以在很多字符编码间进行转换。" + +#. type: textblock +#: dos2unix.pod:484 +msgid "Never use ISO conversion on Unicode text files. It will corrupt UTF-8 encoded files." +msgstr "不对Unicode编码文本使用ISO转换。因这一转换会导致UTF-8编码文件损坏。" + +#. type: textblock +#: dos2unix.pod:486 +msgid "Some examples:" +msgstr "一些示例:" + +#. type: textblock +#: dos2unix.pod:488 +msgid "Convert from DOS default code page to Unix Latin-1:" +msgstr "从DOS默认编码页转换到Unix Latin-1:" + +#. type: verbatim +#: dos2unix.pod:490 +#, no-wrap +msgid "" +" dos2unix -iso -n in.txt out.txt\n" +"\n" +msgstr "" +" dos2unix -iso -n in.txt out.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:492 +msgid "Convert from DOS CP850 to Unix Latin-1:" +msgstr "从DOS CP850转换到Unix Latin-1:" + +#. type: verbatim +#: dos2unix.pod:494 +#, no-wrap +msgid "" +" dos2unix -850 -n in.txt out.txt\n" +"\n" +msgstr "" +" dos2unix -850 -n in.txt out.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:496 +msgid "Convert from Windows CP1252 to Unix Latin-1:" +msgstr "从Windows CP1252转换到Unix Latin-1:" + +#. type: verbatim +#: dos2unix.pod:498 +#, no-wrap +msgid "" +" dos2unix -1252 -n in.txt out.txt\n" +"\n" +msgstr "" +" dos2unix -1252 -n in.txt out.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:500 +msgid "Convert from Windows CP1252 to Unix UTF-8 (Unicode):" +msgstr "从WIndows CP1252转换到Unix UTF-8(Unicode):" + +#. type: verbatim +#: dos2unix.pod:502 +#, no-wrap +msgid "" +" iconv -f CP1252 -t UTF-8 in.txt | dos2unix > out.txt\n" +"\n" +msgstr "" +" iconv -f CP1252 -t UTF-8 in.txt | dos2unix > out.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:504 +msgid "Convert from Unix Latin-1 to DOS default code page:" +msgstr "从Unix Latin-1转换到DOS默认编码页:" + +#. type: verbatim +#: dos2unix.pod:506 +#, no-wrap +msgid "" +" unix2dos -iso -n in.txt out.txt\n" +"\n" +msgstr "" +" unix2dos -iso -n in.txt out.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:508 +msgid "Convert from Unix Latin-1 to DOS CP850:" +msgstr "从Unix Latin-1转换到DOS CP850:" + +#. type: verbatim +#: dos2unix.pod:510 +#, no-wrap +msgid "" +" unix2dos -850 -n in.txt out.txt\n" +"\n" +msgstr "" +" unix2dos -850 -n in.txt out.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:512 +msgid "Convert from Unix Latin-1 to Windows CP1252:" +msgstr "从Unix Latin-1转换到Windows CP1252:" + +#. type: verbatim +#: dos2unix.pod:514 +#, no-wrap +msgid "" +" unix2dos -1252 -n in.txt out.txt\n" +"\n" +msgstr "" +" unix2dos -1252 -n in.txt out.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:516 +msgid "Convert from Unix UTF-8 (Unicode) to Windows CP1252:" +msgstr "从Unix UTF-8(Unicode)转换到Windows CP1252:" + +#. type: verbatim +#: dos2unix.pod:518 +#, no-wrap +msgid "" +" unix2dos < in.txt | iconv -f UTF-8 -t CP1252 > out.txt\n" +"\n" +msgstr "" +" unix2dos < in.txt | iconv -f UTF-8 -t CP1252 > out.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:520 +msgid "See also L and L." +msgstr "参见 L et L。" + +#. type: =head1 +#: dos2unix.pod:525 +msgid "UNICODE" +msgstr "UNICODE" + +#. type: =head2 +#: dos2unix.pod:527 +msgid "Encodings" +msgstr "编码" + +#. type: textblock +#: dos2unix.pod:529 +msgid "There exist different Unicode encodings. On Unix and Linux Unicode files are typically encoded in UTF-8 encoding. On Windows Unicode text files can be encoded in UTF-8, UTF-16, or UTF-16 big endian, but are mostly encoded in UTF-16 format." +msgstr "有几种不同的Unicode编码。对于Unix和Linux中的Unicode文件,通常为UTF-8编码。Windows中的文本文件可以是UTF-8、UTF-16或UTF-16BE编码,但大多采用UTF-16格式。" + +#. type: =head2 +#: dos2unix.pod:534 +msgid "Conversion" +msgstr "转换" + +#. type: textblock +#: dos2unix.pod:536 +msgid "Unicode text files can have DOS, Unix or Mac line breaks, like regular text files." +msgstr "Unicode文本文件可以含有DOS、Unix或Mac断行符,就像普通文本文件一样。" + +#. type: textblock +#: dos2unix.pod:539 +msgid "All versions of dos2unix and unix2dos can convert UTF-8 encoded files, because UTF-8 was designed for backward compatibility with ASCII." +msgstr "所有版本的dos2unix和unix2dos都可以转换UTF-8文件,因为UTF-8向后兼容ASCII。" + +#. type: textblock +#: dos2unix.pod:542 +msgid "Dos2unix and unix2dos with Unicode UTF-16 support, can read little and big endian UTF-16 encoded text files. To see if dos2unix was built with UTF-16 support type C." +msgstr "含有Unicode UTF-16支持的dos2unix和unix2dos可以读取小尾序或大尾序的UTF-16编码文本。输入 C 来确定dos2unix在编译是是否启用了UTF-16支持。" + +#. type: textblock +#: dos2unix.pod:546 +msgid "On Unix/Linux UTF-16 encoded files are converted to the locale character encoding. Use the locale(1) command to find out what the locale character encoding is. When conversion is not possible a conversion error will occur and the file will be skipped." +msgstr "在Unix/Linux中,UTF-16编码文件将被转换为区域字符编码所指定的编码。可以使用 locale(1) 命令来查看当前的区域字符编码。若无法转换,程序将报告转换错误并跳过此文件。" + +#. type: textblock +#: dos2unix.pod:551 +msgid "On Windows UTF-16 files are by default converted to UTF-8. UTF-8 formatted text files are well supported on both Windows and Unix/Linux." +msgstr "在Windows中,UTF-16文件被默认转换为UTF-8格式。Windows和Unix/Linux均支持UTF-8格式的文本文件。" + +#. type: textblock +#: dos2unix.pod:554 +msgid "UTF-16 and UTF-8 encoding are fully compatible, there will no text be lost in the conversion. When an UTF-16 to UTF-8 conversion error occurs, for instance when the UTF-16 input file contains an error, the file will be skipped." +msgstr "UTF-16和UTF-8编码相互兼容,所以彼此转换时不会丢失文本。倘若转换中出错,比如UTF-16格式的输入文件含有错误,那么该文件将被跳过。" + +#. type: textblock +#: dos2unix.pod:558 +msgid "When option C<-u> is used, the output file will be written in the same UTF-16 encoding as the input file. Option C<-u> prevents conversion to UTF-8." +msgstr "若使用了 C<-u> 选项,输出文件将会使用和输入文件相同的UTF-16编码。C<-u>选项将阻止程序转换到UTF-8。" + +#. type: textblock +#: dos2unix.pod:561 +msgid "Dos2unix and unix2dos have no option to convert UTF-8 files to UTF-16." +msgstr "dos2unix和unix2dos没有用于转换UTF-8到UTF-16的选项。" + +#. type: textblock +#: dos2unix.pod:563 +msgid "ISO and 7-bit mode conversion do not work on UTF-16 files." +msgstr "ISO和7位编码模式的转换无法用于UTF-16文件。" + +#. type: =head2 +#: dos2unix.pod:565 +msgid "Byte Order Mark" +msgstr "字节序标记" + +#. type: textblock +#: dos2unix.pod:567 +msgid "On Windows Unicode text files typically have a Byte Order Mark (BOM), because many Windows programs (including Notepad) add BOMs by default. See also L." +msgstr "在Windows中,文本文件一般含有字节序标记(BOM),因为很多Windows程序(包括记事本)默认添加BOM。参见 L。" + +#. type: textblock +#: dos2unix.pod:571 +msgid "On Unix Unicode files typically don't have a BOM. It is assumed that text files are encoded in the locale character encoding." +msgstr "在Unix中,Unicode文件一般不含BOM。假定文本文件使用区域字符编码设置所指定的编码。" + +#. type: textblock +#: dos2unix.pod:574 +msgid "Dos2unix can only detect if a file is in UTF-16 format if the file has a BOM. When an UTF-16 file doesn't have a BOM, dos2unix will see the file as a binary file." +msgstr "dos2unix只能检测含有BOM文件的UTF-16格式。若UTF-16文件不含BOM,dos2unix会将其视作二进制文件。" + +#. type: textblock +#: dos2unix.pod:578 +msgid "Use option C<-ul> or C<-ub> to convert an UTF-16 file without BOM." +msgstr "请使用选项 C<-ul> 或 C<-ub> 来转换不含BOM的UTF-16文件。" + +#. type: textblock +#: dos2unix.pod:580 +msgid "Dos2unix writes by default no BOM in the output file. With option C<-b> Dos2unix writes a BOM when the input file has a BOM." +msgstr "dos2unix默认不输出BOM。使用 C<-b> 选项可以让dos2unix将BOM添加到输出文件,如果输入文件也含有BOM的话。" + +#. type: textblock +#: dos2unix.pod:583 +msgid "Unix2dos writes by default a BOM in the output file when the input file has a BOM. Use option C<-r> to remove the BOM." +msgstr "unix2dos默认输出BOM,如果输入文件也含有BOM的话。使用 C<-r> 可以移除BOM。" + +#. type: textblock +#: dos2unix.pod:586 +msgid "Dos2unix and unix2dos write always a BOM when option C<-m> is used." +msgstr "若使用了 C<-m> 选项,dos2unix和unix2dos将总是输出BOM。" + +#. type: =head2 +#: dos2unix.pod:588 +msgid "Unicode file names on Windows" +msgstr "Windows中Unicode文件的文件名" + +#. type: textblock +#: dos2unix.pod:590 +msgid "Dos2unix has optional support for reading and writing Unicode file names in the Windows Command Prompt. That means that dos2unix can open files that have characters in the name that are not part of the default system ANSI code page. To see if dos2unix for Windows was built with Unicode file name support type C." +msgstr "dos2unix对于Windows命令提示符中读取和写入Unicode文件名有额外的支持。这意味着dos2unix可以打开那些包含非默认系统ANSI编码页字符的文件。若要查看Windows版dos2unix在编译时是否加入了Unicode文件名支持,请输入 C。" + +#. type: textblock +#: dos2unix.pod:596 +msgid "There are some issues with displaying Unicode file names in a Windows console. See option C<-D>, C<--display-enc>. The file names may be displayed wrongly in the console, but the files will be written with the correct name." +msgstr "在Windows终端中显示Unicode文件名有一些需要注意的问题。请参见 C<-D> 和 C<--display-enc> 选项。文件名在终端中可能无法被正确显示,但写入文件时文件名仍然是正确的。" + +#. type: =head2 +#: dos2unix.pod:600 +msgid "Unicode examples" +msgstr "Unicode示例" + +#. type: textblock +#: dos2unix.pod:602 +msgid "Convert from Windows UTF-16 (with BOM) to Unix UTF-8:" +msgstr "转换Windows UTF-16到Unix UTF-8:" + +#. type: verbatim +#: dos2unix.pod:604 +#, no-wrap +msgid "" +" dos2unix -n in.txt out.txt\n" +"\n" +msgstr "" +" dos2unix -n in.txt out.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:606 +msgid "Convert from Windows UTF-16LE (without BOM) to Unix UTF-8:" +msgstr "转换Windows UTF-16LE(不含BOM)到Unix UTF-8:" + +#. type: verbatim +#: dos2unix.pod:608 +#, no-wrap +msgid "" +" dos2unix -ul -n in.txt out.txt\n" +"\n" +msgstr "" +" dos2unix -ul -n in.txt out.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:610 +msgid "Convert from Unix UTF-8 to Windows UTF-8 with BOM:" +msgstr "转换Unix UTF-8到Windows UTF-8(并添加BOM):" + +#. type: verbatim +#: dos2unix.pod:612 +#, no-wrap +msgid "" +" unix2dos -m -n in.txt out.txt\n" +"\n" +msgstr "" +" unix2dos -m -n in.txt out.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:614 +msgid "Convert from Unix UTF-8 to Windows UTF-16:" +msgstr "转换Unix UTF-8到Windows UTF-16:" + +#. type: verbatim +#: dos2unix.pod:616 +#, no-wrap +msgid "" +" unix2dos < in.txt | iconv -f UTF-8 -t UTF-16 > out.txt\n" +"\n" +msgstr "" +" unix2dos < in.txt | iconv -f UTF-8 -t UTF-16 > out.txt\n" +"\n" + +#. type: =head1 +#: dos2unix.pod:618 +msgid "GB18030" +msgstr "GB18030" + +#. type: textblock +#: dos2unix.pod:620 +msgid "GB18030 is a Chinese government standard. A mandatory subset of the GB18030 standard is officially required for all software products sold in China. See also L." +msgstr "GB18030是中国国家标准。GB18030标准的一系列子集被强制应用于中国销售的软件产品。参见 L。" + +#. type: textblock +#: dos2unix.pod:624 +msgid "GB18030 is fully compatible with Unicode, and can be considered an unicode transformation format. Like UTF-8, GB18030 is compatible with ASCII. GB18030 is also compatible with Windows code page 936, also known as GBK." +msgstr "GB18030与Unicode完全兼容,并且可以被认为是Unicode格式的变体。和UTF-8一样,GB18030也兼容ASCII。GB18030也兼容Windows 936代码页(GBK)。" + +#. type: textblock +#: dos2unix.pod:628 +msgid "On Unix/Linux UTF-16 files are converted to GB18030 when the locale encoding is set to GB18030. Note that this will only work if the locale is supported by the system. Use command C to get the list of supported locales." +msgstr "在Unix/Linux中,若区域编码被设置为GB18030,UTF-16文件将被转换为GB18030格式。注意只有当系统支持区域设置时这一才会进行这一转换。可以使用 C 命令来获取受支持的区域。" + +#. type: textblock +#: dos2unix.pod:632 +msgid "On Windows you need to use option C<-gb> to convert UTF-16 files to GB18030." +msgstr "在Windows中,你需要使用 C<-gb> 选项来转换UTF-16文件到GB18030编码。" + +#. type: textblock +#: dos2unix.pod:634 +msgid "GB18030 encoded files can have a Byte Order Mark, like Unicode files." +msgstr "GB18030编码的文件和Unicode文件一样可以含有BOM。" + +#. type: =head1 +#: dos2unix.pod:636 +msgid "EXAMPLES" +msgstr "示例" + +#. type: textblock +#: dos2unix.pod:638 +msgid "Read input from 'stdin' and write output to 'stdout':" +msgstr "从标准输入读取,并输出到标准输出:" + +#. type: verbatim +#: dos2unix.pod:640 +#, no-wrap +msgid "" +" dos2unix\n" +" dos2unix -l -c mac\n" +"\n" +msgstr "" +" dos2unix\n" +" dos2unix -l -c mac\n" +"\n" + +#. type: textblock +#: dos2unix.pod:643 +msgid "Convert and replace a.txt. Convert and replace b.txt:" +msgstr "转换并覆盖a.txt和b.txt:" + +#. type: verbatim +#: dos2unix.pod:645 +#, no-wrap +msgid "" +" dos2unix a.txt b.txt\n" +" dos2unix -o a.txt b.txt\n" +"\n" +msgstr "" +" dos2unix a.txt b.txt\n" +" dos2unix -o a.txt b.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:648 +msgid "Convert and replace a.txt in ascii conversion mode:" +msgstr "转换并覆盖a.txt,使用ascii模式:" + +#. type: verbatim +#: dos2unix.pod:650 +#, no-wrap +msgid "" +" dos2unix a.txt\n" +"\n" +msgstr "" +" dos2unix a.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:652 +msgid "Convert and replace a.txt in ascii conversion mode, convert and replace b.txt in 7bit conversion mode:" +msgstr "转换并覆盖a.txt,使用ascii模式;转换并覆盖b.txt,使用7位编码模式:" + +#. type: verbatim +#: dos2unix.pod:655 +#, no-wrap +msgid "" +" dos2unix a.txt -c 7bit b.txt\n" +" dos2unix -c ascii a.txt -c 7bit b.txt\n" +" dos2unix -ascii a.txt -7 b.txt\n" +"\n" +msgstr "" +" dos2unix a.txt -c 7bit b.txt\n" +" dos2unix -c ascii a.txt -c 7bit b.txt\n" +" dos2unix -ascii a.txt -7 b.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:659 +msgid "Convert a.txt from Mac to Unix format:" +msgstr "将a.txt从Mac格式转换到Unix格式:" + +#. type: verbatim +#: dos2unix.pod:661 +#, no-wrap +msgid "" +" dos2unix -c mac a.txt\n" +" mac2unix a.txt\n" +"\n" +msgstr "" +" dos2unix -c mac a.txt\n" +" mac2unix a.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:664 +msgid "Convert a.txt from Unix to Mac format:" +msgstr "将a.txt从Unix格式转换到Mac格式:" + +#. type: verbatim +#: dos2unix.pod:666 +#, no-wrap +msgid "" +" unix2dos -c mac a.txt\n" +" unix2mac a.txt\n" +"\n" +msgstr "" +" unix2dos -c mac a.txt\n" +" unix2mac a.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:669 +msgid "Convert and replace a.txt while keeping original date stamp:" +msgstr "转换并覆盖a.txt,保留原始时间戳:" + +#. type: verbatim +#: dos2unix.pod:671 +#, no-wrap +msgid "" +" dos2unix -k a.txt\n" +" dos2unix -k -o a.txt\n" +"\n" +msgstr "" +" dos2unix -k a.txt\n" +" dos2unix -k -o a.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:674 +msgid "Convert a.txt and write to e.txt:" +msgstr "转换a.txt,并输出到e.txt:" + +#. type: verbatim +#: dos2unix.pod:676 +#, no-wrap +msgid "" +" dos2unix -n a.txt e.txt\n" +"\n" +msgstr "" +" dos2unix -n a.txt e.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:678 +msgid "Convert a.txt and write to e.txt, keep date stamp of e.txt same as a.txt:" +msgstr "转换a.txt,并输出到e.txt,同时使e.txt的时间戳和a.txt一致:" + +#. type: verbatim +#: dos2unix.pod:680 +#, no-wrap +msgid "" +" dos2unix -k -n a.txt e.txt\n" +"\n" +msgstr "" +" dos2unix -k -n a.txt e.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:682 +msgid "Convert and replace a.txt, convert b.txt and write to e.txt:" +msgstr "转换并覆盖a.txt;转换b.txt并输出到e.txt:" + +#. type: verbatim +#: dos2unix.pod:684 +#, no-wrap +msgid "" +" dos2unix a.txt -n b.txt e.txt\n" +" dos2unix -o a.txt -n b.txt e.txt\n" +"\n" +msgstr "" +" dos2unix a.txt -n b.txt e.txt\n" +" dos2unix -o a.txt -n b.txt e.txt\n" +"\n" + +#. type: textblock +#: dos2unix.pod:687 +msgid "Convert c.txt and write to e.txt, convert and replace a.txt, convert and replace b.txt, convert d.txt and write to f.txt:" +msgstr "转换c.txt并输出到e.txt;转换并覆盖a.txt和b.txt;转换d.txt并输出到f.txt:" + +#. type: verbatim +#: dos2unix.pod:690 +#, no-wrap +msgid "" +" dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt\n" +"\n" +msgstr "" +" dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt\n" +"\n" + +#. type: =head1 +#: dos2unix.pod:692 +msgid "RECURSIVE CONVERSION" +msgstr "递归转换" + +#. type: textblock +#: dos2unix.pod:694 +msgid "Use dos2unix in combination with the find(1) and xargs(1) commands to recursively convert text files in a directory tree structure. For instance to convert all .txt files in the directory tree under the current directory type:" +msgstr "结合 find(1) 和 xargs(1) 使用dos2unix可以递归地转换目录树中的文本文件。例如,转换当前目录的目录树中所有的.txt文件:" + +#. type: verbatim +#: dos2unix.pod:698 +#, no-wrap +msgid "" +" find . -name '*.txt' |xargs dos2unix\n" +"\n" +msgstr "" +" find . -name '*.txt' |xargs dos2unix\n" +"\n" + +#. type: textblock +#: dos2unix.pod:700 +msgid "In a Windows Command Prompt the following command can be used:" +msgstr "在Windows命令提示符中,可以使用下列命令:" + +#. type: verbatim +#: dos2unix.pod:702 +#, no-wrap +msgid "" +" for /R %G in (*.txt) do dos2unix \"%G\"\n" +"\n" +msgstr "" +" for /R %G in (*.txt) do dos2unix \"%G\"\n" +"\n" + +#. type: =head1 +#: dos2unix.pod:704 +msgid "LOCALIZATION" +msgstr "区域" + +#. type: =item +#: dos2unix.pod:708 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:710 +msgid "The primary language is selected with the environment variable LANG. The LANG variable consists out of several parts. The first part is in small letters the language code. The second is optional and is the country code in capital letters, preceded with an underscore. There is also an optional third part: character encoding, preceded with a dot. A few examples for POSIX standard type shells:" +msgstr "LANG环境变量指定了程序所使用的首选语言。它包括几个部分:第一部分是小写的语言编码,第二部分是(可选的)大写的国家/地区代码,前面用下划线连接;第三部分也是可选的,即字符编码,前面用点连接。一些POSIX规范的示例如下:" + +#. type: verbatim +#: dos2unix.pod:717 +#, no-wrap +msgid "" +" export LANG=nl Dutch\n" +" export LANG=nl_NL Dutch, The Netherlands\n" +" export LANG=nl_BE Dutch, Belgium\n" +" export LANG=es_ES Spanish, Spain\n" +" export LANG=es_MX Spanish, Mexico\n" +" export LANG=en_US.iso88591 English, USA, Latin-1 encoding\n" +" export LANG=en_GB.UTF-8 English, UK, UTF-8 encoding\n" +"\n" +msgstr "" +" export LANG=zh 中文\n" +" export LANG=zh_CN 中文,中国\n" +" export LANG=zh_TW 中文,台湾\n" +" export LANG=es_ES 西班牙语,西班牙\n" +" export LANG=es_MX 西班牙语,墨西哥\n" +" export LANG=en_US.iso88591 英语,美国,Latin-1编码\n" +" export LANG=en_GB.UTF-8 英语,英国,UTF-8编码\n" +"\n" + +#. type: textblock +#: dos2unix.pod:725 +msgid "For a complete list of language and country codes see the gettext manual: L" +msgstr "完整的语言和国家/地区编码可以在gettext手册中找到:L" + +#. type: textblock +#: dos2unix.pod:728 +msgid "On Unix systems you can use the command locale(1) to get locale specific information." +msgstr "在Unix系统中,你可以使用 locale(1) 命令获取特定区域的信息。" + +#. type: =item +#: dos2unix.pod:731 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:733 +msgid "With the LANGUAGE environment variable you can specify a priority list of languages, separated by colons. Dos2unix gives preference to LANGUAGE over LANG. For instance, first Dutch and then German: C. You have to first enable localization, by setting LANG (or LC_ALL) to a value other than \"C\", before you can use a language priority list through the LANGUAGE variable. See also the gettext manual: L" +msgstr "可以使用LANGUAGE变量指定一系列语言的优先级,各项之间由冒号分割。dos2unix首先使用LANGUAGE变量,其次才是LANG。例如,首选中文、其次英文:C。在使用语言优先级之前,必须先启用区域化功能,即将LANG(或LC_ALL)变量设置为除了“C”以外的其他值。参见gettext手册:L" + +#. type: textblock +#: dos2unix.pod:741 +msgid "If you select a language which is not available you will get the standard English messages." +msgstr "如果你选择了一个不可用的语言,程序将会输出标准的英语信息。" + +#. type: =item +#: dos2unix.pod:745 +msgid "B" +msgstr "B" + +#. type: textblock +#: dos2unix.pod:747 +msgid "With the environment variable DOS2UNIX_LOCALEDIR the LOCALEDIR set during compilation can be overruled. LOCALEDIR is used to find the language files. The GNU default value is C. Option B<--version> will display the LOCALEDIR that is used." +msgstr "DOS2UNIX_LOCALEDIR环境变量将覆盖编译时设置的LOCALEDIR变量。LOCALEDIR被用于查找语言文件。GNU程序的默认值为 C。可以使用 B<--version> 查看当前的LOCALEDIR。" + +#. type: textblock +#: dos2unix.pod:752 +msgid "Example (POSIX shell):" +msgstr "示例(POSIX shell):" + +#. type: verbatim +#: dos2unix.pod:754 +#, no-wrap +msgid "" +" export DOS2UNIX_LOCALEDIR=$HOME/share/locale\n" +"\n" +msgstr "" +" export DOS2UNIX_LOCALEDIR=$HOME/share/locale\n" +"\n" + +#. type: =head1 +#: dos2unix.pod:759 +msgid "RETURN VALUE" +msgstr "返回值" + +#. type: textblock +#: dos2unix.pod:761 +msgid "On success, zero is returned. When a system error occurs the last system error will be returned. For other errors 1 is returned." +msgstr "若成功,返回0。若出现系统错误,则返回最近一次系统错误号。若发生其他错误,返回1。" + +#. type: textblock +#: dos2unix.pod:764 +msgid "The return value is always zero in quiet mode, except when wrong command-line options are used." +msgstr "在安静模式下,返回值总是为0,除非命令行选项有误。" + +#. type: =head1 +#: dos2unix.pod:767 +msgid "STANDARDS" +msgstr "遵循规范" + +#. type: textblock +#: dos2unix.pod:769 +msgid "L" +msgstr "L" + +#. type: textblock +#: dos2unix.pod:771 +msgid "L" +msgstr "L" + +#. type: textblock +#: dos2unix.pod:773 +msgid "L" +msgstr "L" + +#. type: textblock +#: dos2unix.pod:775 +msgid "L" +msgstr "L" + +#. type: =head1 +#: dos2unix.pod:777 +msgid "AUTHORS" +msgstr "作者" + +#. type: textblock +#: dos2unix.pod:779 +msgid "Benjamin Lin - , Bernd Johannes Wuebben (mac2unix mode) - , Christian Wurll (add extra newline) - , Erwin Waterlander - (maintainer)" +msgstr "Benjamin Lin - Bernd Johannes Wuebben(mac2unix模式) - ,Christian Wurll(添加额外新行) - ,Erwin Waterlander - (维护者)" + +#. type: textblock +#: dos2unix.pod:784 +msgid "Project page: L" +msgstr "项目主页:L" + +#. type: textblock +#: dos2unix.pod:786 +msgid "SourceForge page: L" +msgstr "SourceForge主页:L" + +#. type: =head1 +#: dos2unix.pod:788 +msgid "SEE ALSO" +msgstr "参见" + +#. type: textblock +#: dos2unix.pod:790 +msgid "file(1) find(1) iconv(1) locale(1) xargs(1)" +msgstr "file(1) find(1) iconv(1) locale(1) xargs(1)" + +#~ msgid "Freecode: L" +#~ msgstr "Freecode: L" + +#~ msgid "The Windows versions of dos2unix and unix2dos convert UTF-16 encoded files always to UTF-8 encoded files. Unix versions of dos2unix/unix2dos convert UTF-16 encoded files to the locale character encoding when it is set to UTF-8. Use the locale(1) command to find out what the locale character encoding is." +#~ msgstr "Les versions Windows de dos2unix et unix2dos convertissent toujours les fichiers UTF-16 en fichiers UTF-8. Les versions Unix de dos2unix/unix2dos convertissent les fichiers UTF-16 vers le codage de l'environnement linguistique quand il est en UTF-8. Utilisez la commande locale(1) pour connaître le codage de l'environnement linguistique en vigueur." + +#~ msgid "Because UTF-8 formatted text files are well supported on both Windows and Unix, dos2unix and unix2dos have no option to write UTF-16 files. All UTF-16 characters can be encoded in UTF-8. Conversion from UTF-16 to UTF-8 is without loss. UTF-16 files will be skipped on Unix when the locale character encoding is not UTF-8, to prevent accidental loss of text. When an UTF-16 to UTF-8 conversion error occurs, for instance when the UTF-16 input file contains an error, the file will be skipped." +#~ msgstr "Puisque les fichiers textes au format UTF-8 sont bien supportés sous Windows et Unix, dos2unix et unix2dos n'ont pas d'option pour écrire des fichiers UTF-16. Tous les caractères UTF-16 peuvent être codés en UTF-8. La conversion de UTF-16 vers UTF-8 est sans perte. Les fichiers UTF-16 seront ignorés sous Unix quand l'encodage des caractères de l'environnement linguistique n'est pas UTF-8 pour éviter la perte accidentelle du texte. Quand une conversion de UTF-16 vers UTF-8 échoue, par exemple parce que le fichier d'entrée UTF-16 contient des erreurs, le fichier est ignoré." + +#~ msgid "Dos2unix never writes a BOM in the output file, unless you use option C<-m>." +#~ msgstr "Dos2unix n'écrit jamais de BOM dans le fichier de sortie à moins que vous utilisiez l'option C<-m>." + +#~ msgid "Dos2unix was modelled after dos2unix under SunOS/Solaris and has similar conversion modes." +#~ msgstr "Dos2unix a été conçu comme dos2unix sous SunOS/Solaris et a des modes de conversions similaires." + +#~ msgid "Conversion modes I, I<7bit>, and I are similar to those of dos2unix/unix2dos under SunOS/Solaris." +#~ msgstr "Les modes de conversion I, I<7bit> et I sont similaires à ceux de dos2unix/unix2dos sous SunOS/Solaris." diff --git a/man/zh_CN/man1/dos2unix.pod b/man/zh_CN/man1/dos2unix.pod new file mode 100644 index 0000000..6fba995 --- /dev/null +++ b/man/zh_CN/man1/dos2unix.pod @@ -0,0 +1,624 @@ + + ***************************************************** + * GENERATED FILE, DO NOT EDIT * + * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION * + ***************************************************** + +This file was generated by po4a(7). Do not store it (in VCS, for example), +but store the PO file used as source file by po4a-translate. + +In fact, consider this as a binary, and the PO file as a regular .c file: +If the PO get lost, keeping this translation up-to-date will be harder. + + +=pod + +=encoding UTF-8 + +=head1 名称 + +dos2unix - DOS/Mac - Unix文件格式转换器 + +=head1 概要 + + dos2unix [选项] [文件 …] [-n 输入文件 输出文件 ...] + unix2dos [选项] [文件 …] [-n 输入文件 输出文件 ...] + +=head1 说明 + +Dos2unix软件包包括工具C 和 C,用于将纯文本文件在DOS或Mac格式与Unix格式之间相互转换。 + +DOS/Windows的文本文件中,断行符是由两个字符共同表示的:回车符(CR)和换行符(LF)。Unix的文本文件中,换行符则由单个换行符(LF)表示。而Mac的文本文件则由单个回车符(CR,用于Mac +OS X之前的系统)或单个换行符(LF,用于当下的新Mac OS)表示。 + +除了断行符,Dos2unix还可以转换文件编码。一些DOS编码页可以被转换为Unix Latin-1,Windows +Unicode(UTF-16)文件也可以被转换为Unix Unicode(UTF-8)文件。 + +二进制文件则会被自动跳过,除非指定了强制转换选项。 + +特殊文件,如目录和队列,会被自动跳过。 + +符号链接和其所指向的目标默认不会被转换。可以用选项来指定替换符号链接,或者将输出写入到链接目标。Windows下不支持写入到符号链接的目标。 + +Dos2unix由SunOS/Solaris下的版本改写而成。这两个版本间有一个重大差异:本版本默认进行原位转换(旧文件模式),而原来SunOS/Solaris下的版本只支持配对转换(新文件模式)。参见选项 +C<-o> 和 C<-n>。 + +=head1 选项 + +=over 4 + +=item B<--> + +将后面所有的选项当作文件名。如果你希望转换一个文件名以破折号开头的文件,可以使用这个选项。例如,要转换一个名为“-foo”的文件,你可以用这个命令: + + dos2unix -- -foo + +或者在新文件模式中: + + dos2unix -n -- -foo out.txt + +=item B<-ascii> + +只转换断行符。这是默认的转换模式。 + +=item B<-iso> + +在DOS和ISO-8859-1字符集之间转换。参见 CONVERSION MODES 一节。 + +=item B<-1252> + +使用Windows 1252 编码页(西欧)。 + +=item B<-437> + +使用DOS 437 编码页(美国)。这是ISO转换时的默认编码页。 + +=item B<-850> + +使用DOS 850 编码页(西欧)。 + +=item B<-860> + +使用DOS 860 编码页(葡萄牙)。 + +=item B<-863> + +使用DOS 863 编码页(加拿大法语)。 + +=item B<-865> + + 使用DOS 865 编码页(北欧)。 + +=item B<-7> + +将8位字符转换到7位空间。 + +=item B<-b, --keep-bom> + +保留字节序标记(BOM)。当输入文件含有BOM头时,也向输出文件写入BOM。这是转换到DOS断行符时的默认行为。参见选项 C<-r>。 + +=item B<-c, --convmode 转换模式> + +改变转换模式。转换模式可以为:I、I<7bit>、I或I,默认为ascii。 + +=item B<-D, --display-enc ENCODAGE> + +设置显示文本的编码。编码可以为:I、I、I,默认为ansi。 + +这一选项只对支持Unicode文件名的Windows版dos2unix有效。它对文件名的读写无效,只影响它们的显示结果。 + +在Windows控制台中,有几种可以根据文本编码来显示文本的方法。它们各有利弊。 + + + +=over 4 + +=item B + +dos2unix默认使用ANSI编码文本。优点是它能提供向后兼容性,并能用于raster和TrueType字体。在一些地方,你可能需要使用 +C 命令将活动DOS OEM编码页设置为Windows系统ANSI编码页,因为dos2unix使用Windows系统编码页。 + +ansi的缺点是含有非系统默认编码页中字符的国际化文件名将无法被正确显示。你会看到一些问号或其他错误的字符。如果你不需要处理外文文件名,这一方法是不错的选择。 + +=item B + +Unicode编码(Windows中对UTF-16的称呼)的优点是文本可以被正确显示,也无需改变活动编码页。你可能需要设置终端字体为TrueType以便正确显示国际化字符。如果TrueType字体中不包含某个字符,你会看到一个小方块,有时方块中还会有一个问号。 + +当你使用ConEmu终端时,所以的文本将会被正确显示,因为ConEmu会自动选择合适的字体。 + +Unicode的缺点在于它与ASCII不兼容。当你将输出重定向到其他程序或文件时,它可能不那么容易控制。重定向到文件无法得到正确的UTF-16文件。 + +=item B + +utf8的优点在于它与ASCII兼容,并且当你将输出重定向到文件时,文件将会为正确的UTF-8格式。你需要设置终端的字体为TrueType字体。使用TrueType字体可以使得文本得以正确显示,就像使用 +C 编码时那样。 + +缺点是当你使用默认的raster字体时,所有的非ASCII字符将无法被正确显示。不仅是unicode文件名,连翻译的消息也无法被读取。在配置为东亚地区的Windows中,当终端中显示这些消息时你可能会看到闪烁现象。 + +在ConEmu终端中,utf编码方式可以正常工作。 + +=back + +默认的编码方式可以通过设置 DOS2UNIX_DISPLAY_ENC 环境变量为 C 或 C 来改变。 + +=item B<-f, --force> + +强制转换二进制文件。 + +=item B<-gb, --gb18030> + +在Windows中,UTF-16默认被转换为UTF-8格式,无论区域设置为何。请使用这一选项将UTF-16文件转换为GB18030格式。此选项只在Windows下有效。参加 +GB18030 一节。 + +=item B<-h, --help> + +显示帮助,然后退出。 + +=item B<-i[标志], --info[=标志] 文件 …> + +显示文件信息。不进行转换。 + +将会显示下列信息(按顺序):DOS断行符的数量、Unix断行符的数量、Mac断行符的数量、是否有BOM、文本/二进制、文件名。 + +输出示例: + + 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 + +可以为输出设置额外的标志(一个或多个)。 + +=over 4 + +=item B + +显示DOS断行符的数量。 + +=item B + +显示Unix断行符的数量。 + +=item B + +显示Mac断行符的数量。 + +=item B + +显示BOM状况。 + +=item B + +显示文件为文本或二进制。 + +=item B + +只显示将会被转换的文件。 + +若设置了 C标志,dos2unix将只显示含有DOS断行符的文件,unix2dos将只显示含有Unix断行符的文件。 + +=back + +示例: + +显示所有 *.txt 文件的信息: + + dos2unix -i *.txt + +只显示DOS断行符和Unix断行符的数量: + + dos2unix -idu *.txt + +只显示BOM状况: + + dos2unix --info=b *.txt + +列出含有DOS断行符的文件: + + dos2unix -ic *.txt + +列出含有Unix断行符的文件: + + unix2dos -ic *.txt + +只转换含有DOS断行符的文件,保持其他文件不变: + + dos2unix -ic *.txt | xargs dos2unix + +查找含有DOS断行符的文本文件: + + find -name '*.txt' | xargs dos2unix -ic + +=item B<-k, --keepdate> + +将输入文件的时间戳应用到输出文件。 + +=item B<-L, --license> + +显示程序许可证。 + +=item B<-l, --newline> + +添加额外的新行。 + +B:只有DOS断行符会被转换为两个Unix断行符。在Mac模式下,只有Mac断行符会被转换为Unix断行符。 + +B:只有Unix断行符会被转换为两个DOS断行符。在Mac模式下,Unix断行符会被转换为两个Mac断行符。 + +=item B<-m, --add-bom> + +将字节序标记(BOM)写入到输出文件。默认情况下将写入UTF-8 BOM。 + +当输入文件为UTF-16格式,并且使用了 C<-u>选项,将写入UTF-16 BOM。 + +当输出文件不是UTF-8、UTF-16或GB18030格式时,请不要使用此选项。参加 UNICODE 一节。 + + + +=item B<-n, --newline 输入文件 输出文件 ...> + +新文件模式。转换输入文件并写入到输出文件。文件名必须成对给出,并且 I<不能> 使用通配符,否则你 I<将会>丢失文件。 + +使用新文件(配对)模式转换时,命令执行者必须为文件的所有者。新文件的读/写权限将由源文件的权限减去命令执行者的 umask(1) 得到。 + +=item B<-o, --oldfile 文件 ...> + +旧文件模式。转换并将输出覆盖到源文件。程序默认使用此模式,允许使用通配符。 + +在旧文件(替换)模式下,被转换的文件的所有者、组和读/写权限保持不变。当文件被其他具有写权限的用户(如root)转换时,情况也是如此。如果无法保持这些值不变,转换将会终止。改变源文件的所有者可能造成其无法读取该文件,而改变组则可能带来安全隐患,使文件被不法分子读取。只有Unix才支持转换时保留所有者、组和读/写权限。 + +=item B<-q, --quiet> + +安静模式。不显示任何警告或信息。返回值为0,除非命令行选项有误。 + +=item B<-r, --remove-bom> + +移除字节序标记(BOM),不写入BOM到输出文件。这是转换到Unix断行符时的默认行为。参见选项 C<-b>。 + +=item B<-s, --safe> + +跳过二进制文件(默认)。 + +=item B<-u, --keep-utf16> + +保留输入文件的UTF-16编码。输出文件也使用UTF-16编码和相同的尾序。这将阻止转换到UTF-8。相应也会写入UTF-16 BOM。可以用 +C<-ascii>选项来禁止。 + +=item B<-ul, --assume-utf16le> + +假定输入文件格式为UTF-16LE。 + +输入文件中有BOM时,将会覆盖此选项。 + +如果你做了错误的假设(输入文件不为UTF-16LE格式),并且转换成功,你将会得到一个错误的UTF-8格式的文件。你可以用 iconv(1) +来撤销转换,将其从UTF-8转换回UTF-16LE。这样做可以恢复源文件。 + +对UTF-16LE的假定将根据 l<转换模式> 来工作。若改变了默认的 l 模式,则这一假定将会被关闭。 + +=item B<-ub, --assume-utf16be> + +假定输入文件格式为UTF-16BE。 + +这一选项与 C<-ul> 类似。 + +=item B<-v, --verbose> + +显示更多信息。将会显示有关BOM和转换统计的额外信息。 + +=item B<-F, --follow-symlink> + +追踪符号链接并转换其目标。 + +=item B<-R, --replace-symlink> + +将符号链接的目标替换为转换后的文件(原来的目标文件保持不变)。 + +=item B<-S, --skip-symlink> + +保持符号链接和其目标文件不变(默认)。 + +=item B<-V, --version> + +显示版本信息,然后退出。 + +=back + +=head1 Mac模式 + +普通模式下,断行符将被转换为DOS格式,或相反。Mac格式的断行符将不会被转换。 + +Mac模式下,Mac断行符将被转换为Unix格式,或相反。DOS断行符将不会被转换。 + +若要以Mac模式运行,请使用命令行选项 C<-c mac>,或使用命令 C 或 C。 + +=head1 转换模式 + +=over 4 + +=item B + +在 C 模式下,只转换断行符。 这是默认的转换模式。 + +尽管此模式名叫“ASCII”(7位编码标准),实际上转换按照8位编码进行。转换UTF-8编码文件时请务必使用此模式。 + +=item B<7bit> + +在此模式下,所以的8位非ASCII字符(取值范围128-255)将被转换到7位编码空间。 + +=item B + +Unix下,将在DOS字符集(编码页)和ISO字符集 ISO-8859-1(Latin-1)之间进行转换。不具有 ISO-8859-1 +中对等字符的DOS字符将会被转换为点号(“.”)。当 ISO-8859-1 字符集中没有DOS中的对等字符时也是如此。 + +当只指定了 C<-iso> 选项时,dos2unix将尝试确定当前活动代码页。若无法确定,则使用默认代码页 +CP437(普遍用于美国)。若要强制指定代码页,请使用选项 +C<-437>(美国)、C<-850>(西欧)、C<-860>(葡萄牙)、C<-863>(法国、加拿大)或C<-865>(北欧)。 +Windows CP1252代码页(西欧)也可以通过选项 C<-1252> 获得支持。若要使用其他代码页,可以结合 iconv(1) +使用dos2unix。iconv可以在很多字符编码间进行转换。 + +不对Unicode编码文本使用ISO转换。因这一转换会导致UTF-8编码文件损坏。 + +一些示例: + +从DOS默认编码页转换到Unix Latin-1: + + dos2unix -iso -n in.txt out.txt + +从DOS CP850转换到Unix Latin-1: + + dos2unix -850 -n in.txt out.txt + +从Windows CP1252转换到Unix Latin-1: + + dos2unix -1252 -n in.txt out.txt + +从WIndows CP1252转换到Unix UTF-8(Unicode): + + iconv -f CP1252 -t UTF-8 in.txt | dos2unix > out.txt + +从Unix Latin-1转换到DOS默认编码页: + + unix2dos -iso -n in.txt out.txt + +从Unix Latin-1转换到DOS CP850: + + unix2dos -850 -n in.txt out.txt + +从Unix Latin-1转换到Windows CP1252: + + unix2dos -1252 -n in.txt out.txt + +从Unix UTF-8(Unicode)转换到Windows CP1252: + + unix2dos < in.txt | iconv -f UTF-8 -t CP1252 > out.txt + +参见 L et +L。 + +=back + +=head1 UNICODE + +=head2 编码 + +有几种不同的Unicode编码。对于Unix和Linux中的Unicode文件,通常为UTF-8编码。Windows中的文本文件可以是UTF-8、UTF-16或UTF-16BE编码,但大多采用UTF-16格式。 + +=head2 转换 + +Unicode文本文件可以含有DOS、Unix或Mac断行符,就像普通文本文件一样。 + +所有版本的dos2unix和unix2dos都可以转换UTF-8文件,因为UTF-8向后兼容ASCII。 + +含有Unicode UTF-16支持的dos2unix和unix2dos可以读取小尾序或大尾序的UTF-16编码文本。输入 C +来确定dos2unix在编译是是否启用了UTF-16支持。 + +在Unix/Linux中,UTF-16编码文件将被转换为区域字符编码所指定的编码。可以使用 locale(1) +命令来查看当前的区域字符编码。若无法转换,程序将报告转换错误并跳过此文件。 + +在Windows中,UTF-16文件被默认转换为UTF-8格式。Windows和Unix/Linux均支持UTF-8格式的文本文件。 + +UTF-16和UTF-8编码相互兼容,所以彼此转换时不会丢失文本。倘若转换中出错,比如UTF-16格式的输入文件含有错误,那么该文件将被跳过。 + +若使用了 C<-u> 选项,输出文件将会使用和输入文件相同的UTF-16编码。C<-u>选项将阻止程序转换到UTF-8。 + +dos2unix和unix2dos没有用于转换UTF-8到UTF-16的选项。 + +ISO和7位编码模式的转换无法用于UTF-16文件。 + +=head2 字节序标记 + +在Windows中,文本文件一般含有字节序标记(BOM),因为很多Windows程序(包括记事本)默认添加BOM。参见 +L。 + +在Unix中,Unicode文件一般不含BOM。假定文本文件使用区域字符编码设置所指定的编码。 + +dos2unix只能检测含有BOM文件的UTF-16格式。若UTF-16文件不含BOM,dos2unix会将其视作二进制文件。 + +请使用选项 C<-ul> 或 C<-ub> 来转换不含BOM的UTF-16文件。 + +dos2unix默认不输出BOM。使用 C<-b> 选项可以让dos2unix将BOM添加到输出文件,如果输入文件也含有BOM的话。 + +unix2dos默认输出BOM,如果输入文件也含有BOM的话。使用 C<-r> 可以移除BOM。 + +若使用了 C<-m> 选项,dos2unix和unix2dos将总是输出BOM。 + +=head2 Windows中Unicode文件的文件名 + +dos2unix对于Windows命令提示符中读取和写入Unicode文件名有额外的支持。这意味着dos2unix可以打开那些包含非默认系统ANSI编码页字符的文件。若要查看Windows版dos2unix在编译时是否加入了Unicode文件名支持,请输入 +C。 + +在Windows终端中显示Unicode文件名有一些需要注意的问题。请参见 C<-D> 和 C<--display-enc> +选项。文件名在终端中可能无法被正确显示,但写入文件时文件名仍然是正确的。 + +=head2 Unicode示例 + +转换Windows UTF-16到Unix UTF-8: + + dos2unix -n in.txt out.txt + +转换Windows UTF-16LE(不含BOM)到Unix UTF-8: + + dos2unix -ul -n in.txt out.txt + +转换Unix UTF-8到Windows UTF-8(并添加BOM): + + unix2dos -m -n in.txt out.txt + +转换Unix UTF-8到Windows UTF-16: + + unix2dos < in.txt | iconv -f UTF-8 -t UTF-16 > out.txt + +=head1 GB18030 + +GB18030是中国国家标准。GB18030标准的一系列子集被强制应用于中国销售的软件产品。参见 +L。 + +GB18030与Unicode完全兼容,并且可以被认为是Unicode格式的变体。和UTF-8一样,GB18030也兼容ASCII。GB18030也兼容Windows +936代码页(GBK)。 + +在Unix/Linux中,若区域编码被设置为GB18030,UTF-16文件将被转换为GB18030格式。注意只有当系统支持区域设置时这一才会进行这一转换。可以使用 +C 命令来获取受支持的区域。 + +在Windows中,你需要使用 C<-gb> 选项来转换UTF-16文件到GB18030编码。 + +GB18030编码的文件和Unicode文件一样可以含有BOM。 + +=head1 示例 + +从标准输入读取,并输出到标准输出: + + dos2unix + dos2unix -l -c mac + +转换并覆盖a.txt和b.txt: + + dos2unix a.txt b.txt + dos2unix -o a.txt b.txt + +转换并覆盖a.txt,使用ascii模式: + + dos2unix a.txt + +转换并覆盖a.txt,使用ascii模式;转换并覆盖b.txt,使用7位编码模式: + + dos2unix a.txt -c 7bit b.txt + dos2unix -c ascii a.txt -c 7bit b.txt + dos2unix -ascii a.txt -7 b.txt + +将a.txt从Mac格式转换到Unix格式: + + dos2unix -c mac a.txt + mac2unix a.txt + +将a.txt从Unix格式转换到Mac格式: + + unix2dos -c mac a.txt + unix2mac a.txt + +转换并覆盖a.txt,保留原始时间戳: + + dos2unix -k a.txt + dos2unix -k -o a.txt + +转换a.txt,并输出到e.txt: + + dos2unix -n a.txt e.txt + +转换a.txt,并输出到e.txt,同时使e.txt的时间戳和a.txt一致: + + dos2unix -k -n a.txt e.txt + +转换并覆盖a.txt;转换b.txt并输出到e.txt: + + dos2unix a.txt -n b.txt e.txt + dos2unix -o a.txt -n b.txt e.txt + +转换c.txt并输出到e.txt;转换并覆盖a.txt和b.txt;转换d.txt并输出到f.txt: + + dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt + +=head1 递归转换 + +结合 find(1) 和 xargs(1) 使用dos2unix可以递归地转换目录树中的文本文件。例如,转换当前目录的目录树中所有的.txt文件: + + find . -name '*.txt' |xargs dos2unix + +在Windows命令提示符中,可以使用下列命令: + + for /R %G in (*.txt) do dos2unix "%G" + +=head1 区域 + +=over 4 + +=item B + +LANG环境变量指定了程序所使用的首选语言。它包括几个部分:第一部分是小写的语言编码,第二部分是(可选的)大写的国家/地区代码,前面用下划线连接;第三部分也是可选的,即字符编码,前面用点连接。一些POSIX规范的示例如下: + + export LANG=zh 中文 + export LANG=zh_CN 中文,中国 + export LANG=zh_TW 中文,台湾 + export LANG=es_ES 西班牙语,西班牙 + export LANG=es_MX 西班牙语,墨西哥 + export LANG=en_US.iso88591 英语,美国,Latin-1编码 + export LANG=en_GB.UTF-8 英语,英国,UTF-8编码 + +完整的语言和国家/地区编码可以在gettext手册中找到:L + +在Unix系统中,你可以使用 locale(1) 命令获取特定区域的信息。 + +=item B + +可以使用LANGUAGE变量指定一系列语言的优先级,各项之间由冒号分割。dos2unix首先使用LANGUAGE变量,其次才是LANG。例如,首选中文、其次英文:C。在使用语言优先级之前,必须先启用区域化功能,即将LANG(或LC_ALL)变量设置为除了“C”以外的其他值。参见gettext手册:L + +如果你选择了一个不可用的语言,程序将会输出标准的英语信息。 + + + +=item B + +DOS2UNIX_LOCALEDIR环境变量将覆盖编译时设置的LOCALEDIR变量。LOCALEDIR被用于查找语言文件。GNU程序的默认值为 +C。可以使用 B<--version> 查看当前的LOCALEDIR。 + +示例(POSIX shell): + + export DOS2UNIX_LOCALEDIR=$HOME/share/locale + +=back + + + +=head1 返回值 + +若成功,返回0。若出现系统错误,则返回最近一次系统错误号。若发生其他错误,返回1。 + +在安静模式下,返回值总是为0,除非命令行选项有误。 + +=head1 遵循规范 + +L + +L + +L + +L + +=head1 作者 + +Benjamin Lin - Bernd Johannes Wuebben(mac2unix模式) - +,Christian Wurll(添加额外新行) - ,Erwin +Waterlander - (维护者) + +项目主页:L + +SourceForge主页:L + +=head1 参见 + +file(1) find(1) iconv(1) locale(1) xargs(1) + diff --git a/man/zh_CN/man1/dos2unix.txt b/man/zh_CN/man1/dos2unix.txt new file mode 100644 index 0000000..2266fd9 --- /dev/null +++ b/man/zh_CN/man1/dos2unix.txt @@ -0,0 +1,517 @@ +名称 + dos2unix - DOS/Mac - Unix文件格式转换器 + +概要 + dos2unix [选项] [文件 …] [-n 输入文件 输出文件 ...] + unix2dos [选项] [文件 …] [-n 输入文件 输出文件 ...] + +说明 + Dos2unix软件包包括工具"dos2unix" 和 "unix2dos",用于将纯文本文件在DOS或Mac格式与Unix格式之间相互转换。 + + DOS/Windows的文本文件中,断行符是由两个字符共同表示的:回车符(CR)和换行符(LF)。Unix的文本文件中,换行符则由单个换行符(L + F)表示。而Mac的文本文件则由单个回车符(CR,用于Mac OS X之前的系统)或单个换行符(LF,用于当下的新Mac OS)表示。 + + 除了断行符,Dos2unix还可以转换文件编码。一些DOS编码页可以被转换为Unix Latin-1,Windows + Unicode(UTF-16)文件也可以被转换为Unix Unicode(UTF-8)文件。 + + 二进制文件则会被自动跳过,除非指定了强制转换选项。 + + 特殊文件,如目录和队列,会被自动跳过。 + + 符号链接和其所指向的目标默认不会被转换。可以用选项来指定替换符号链接,或者将输出写入到链接目标。Windows下不支持写入到符号链接的目标。 + + Dos2unix由SunOS/Solaris下的版本改写而成。这两个版本间有一个重大差异:本版本默认进行原位转换(旧文件模式),而原来SunOS + /Solaris下的版本只支持配对转换(新文件模式)。参见选项 "-o" 和 "-n"。 + +选项 + -- 将后面所有的选项当作文件名。如果你希望转换一个文件名以破折号开头的文件,可以使用这个选项。例如,要转换一个名为“-foo”的文件,你可以 + 用这个命令: + + dos2unix -- -foo + + 或者在新文件模式中: + + dos2unix -n -- -foo out.txt + + -ascii + 只转换断行符。这是默认的转换模式。 + + -iso + 在DOS和ISO-8859-1字符集之间转换。参见 CONVERSION MODES 一节。 + + -1252 + 使用Windows 1252 编码页(西欧)。 + + -437 + 使用DOS 437 编码页(美国)。这是ISO转换时的默认编码页。 + + -850 + 使用DOS 850 编码页(西欧)。 + + -860 + 使用DOS 860 编码页(葡萄牙)。 + + -863 + 使用DOS 863 编码页(加拿大法语)。 + + -865 + 使用DOS 865 编码页(北欧)。 + + -7 将8位字符转换到7位空间。 + + -b, --keep-bom + 保留字节序标记(BOM)。当输入文件含有BOM头时,也向输出文件写入BOM。这是转换到DOS断行符时的默认行为。参见选项 "-r"。 + + -c, --convmode 转换模式 + 改变转换模式。转换模式可以为:*ascii*、*7bit*、*iso*或*mac*,默认为ascii。 + + -D, --display-enc ENCODAGE + 设置显示文本的编码。编码可以为:*ansi*、*unicode*、*utf8*,默认为ansi。 + + 这一选项只对支持Unicode文件名的Windows版dos2unix有效。它对文件名的读写无效,只影响它们的显示结果。 + + 在Windows控制台中,有几种可以根据文本编码来显示文本的方法。它们各有利弊。 + + ansi + dos2unix默认使用ANSI编码文本。优点是它能提供向后兼容性,并能用于raster和TrueType字体。在一些地方,你可 + 能需要使用 "chcp" 命令将活动DOS + OEM编码页设置为Windows系统ANSI编码页,因为dos2unix使用Windows系统编码页。 + + ansi的缺点是含有非系统默认编码页中字符的国际化文件名将无法被正确显示。你会看到一些问号或其他错误的字符。如果你不需要处理外文 + 文件名,这一方法是不错的选择。 + + unicode + Unicode编码(Windows中对UTF-16的称呼)的优点是文本可以被正确显示,也无需改变活动编码页。你可能需要设置终端字 + 体为TrueType以便正确显示国际化字符。如果TrueType字体中不包含某个字符,你会看到一个小方块,有时方块中还会有一个问 + 号。 + + 当你使用ConEmu终端时,所以的文本将会被正确显示,因为ConEmu会自动选择合适的字体。 + + Unicode的缺点在于它与ASCII不兼容。当你将输出重定向到其他程序或文件时,它可能不那么容易控制。重定向到文件无法得到正确 + 的UTF-16文件。 + + utf8 + utf8的优点在于它与ASCII兼容,并且当你将输出重定向到文件时,文件将会为正确的UTF-8格式。你需要设置终端的字体为Tru + eType字体。使用TrueType字体可以使得文本得以正确显示,就像使用 "unicode" 编码时那样。 + + 缺点是当你使用默认的raster字体时,所有的非ASCII字符将无法被正确显示。不仅是unicode文件名,连翻译的消息也无法被 + 读取。在配置为东亚地区的Windows中,当终端中显示这些消息时你可能会看到闪烁现象。 + + 在ConEmu终端中,utf编码方式可以正常工作。 + + 默认的编码方式可以通过设置 DOS2UNIX_DISPLAY_ENC 环境变量为 "unicode" 或 "utf8" 来改变。 + + -f, --force + 强制转换二进制文件。 + + -gb, --gb18030 + 在Windows中,UTF-16默认被转换为UTF-8格式,无论区域设置为何。请使用这一选项将UTF-16文件转换为GB18030格式。 + 此选项只在Windows下有效。参加 GB18030 一节。 + + -h, --help + 显示帮助,然后退出。 + + -i[标志], --info[=标志] 文件 … + 显示文件信息。不进行转换。 + + 将会显示下列信息(按顺序):DOS断行符的数量、Unix断行符的数量、Mac断行符的数量、是否有BOM、文本/二进制、文件名。 + + 输出示例: + + 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 + + 可以为输出设置额外的标志(一个或多个)。 + + d 显示DOS断行符的数量。 + + u 显示Unix断行符的数量。 + + m 显示Mac断行符的数量。 + + b 显示BOM状况。 + + t 显示文件为文本或二进制。 + + c 只显示将会被转换的文件。 + + 若设置了 "c"标志,dos2unix将只显示含有DOS断行符的文件,unix2dos将只显示含有Unix断行符的文件。 + + 示例: + + 显示所有 *.txt 文件的信息: + + dos2unix -i *.txt + + 只显示DOS断行符和Unix断行符的数量: + + dos2unix -idu *.txt + + 只显示BOM状况: + + dos2unix --info=b *.txt + + 列出含有DOS断行符的文件: + + dos2unix -ic *.txt + + 列出含有Unix断行符的文件: + + unix2dos -ic *.txt + + 只转换含有DOS断行符的文件,保持其他文件不变: + + dos2unix -ic *.txt | xargs dos2unix + + 查找含有DOS断行符的文本文件: + + find -name '*.txt' | xargs dos2unix -ic + + -k, --keepdate + 将输入文件的时间戳应用到输出文件。 + + -L, --license + 显示程序许可证。 + + -l, --newline + 添加额外的新行。 + + dos2unix:只有DOS断行符会被转换为两个Unix断行符。在Mac模式下,只有Mac断行符会被转换为Unix断行符。 + + unix2dos:只有Unix断行符会被转换为两个DOS断行符。在Mac模式下,Unix断行符会被转换为两个Mac断行符。 + + -m, --add-bom + 将字节序标记(BOM)写入到输出文件。默认情况下将写入UTF-8 BOM。 + + 当输入文件为UTF-16格式,并且使用了 "-u"选项,将写入UTF-16 BOM。 + + 当输出文件不是UTF-8、UTF-16或GB18030格式时,请不要使用此选项。参加 UNICODE 一节。 + + -n, --newline 输入文件 输出文件 ... + 新文件模式。转换输入文件并写入到输出文件。文件名必须成对给出,并且 *不能* 使用通配符,否则你 *将会*丢失文件。 + + 使用新文件(配对)模式转换时,命令执行者必须为文件的所有者。新文件的读/写权限将由源文件的权限减去命令执行者的 umask(1) 得到。 + + -o, --oldfile 文件 ... + 旧文件模式。转换并将输出覆盖到源文件。程序默认使用此模式,允许使用通配符。 + + 在旧文件(替换)模式下,被转换的文件的所有者、组和读/写权限保持不变。当文件被其他具有写权限的用户(如root)转换时,情况也是如此。如 + 果无法保持这些值不变,转换将会终止。改变源文件的所有者可能造成其无法读取该文件,而改变组则可能带来安全隐患,使文件被不法分子读取。只有U + nix才支持转换时保留所有者、组和读/写权限。 + + -q, --quiet + 安静模式。不显示任何警告或信息。返回值为0,除非命令行选项有误。 + + -r, --remove-bom + 移除字节序标记(BOM),不写入BOM到输出文件。这是转换到Unix断行符时的默认行为。参见选项 "-b"。 + + -s, --safe + 跳过二进制文件(默认)。 + + -u, --keep-utf16 + 保留输入文件的UTF-16编码。输出文件也使用UTF-16编码和相同的尾序。这将阻止转换到UTF-8。相应也会写入UTF-16 + BOM。可以用 "-ascii"选项来禁止。 + + -ul, --assume-utf16le + 假定输入文件格式为UTF-16LE。 + + 输入文件中有BOM时,将会覆盖此选项。 + + 如果你做了错误的假设(输入文件不为UTF-16LE格式),并且转换成功,你将会得到一个错误的UTF-8格式的文件。你可以用 + iconv(1) 来撤销转换,将其从UTF-8转换回UTF-16LE。这样做可以恢复源文件。 + + 对UTF-16LE的假定将根据 l<转换模式> 来工作。若改变了默认的 l 模式,则这一假定将会被关闭。 + + -ub, --assume-utf16be + 假定输入文件格式为UTF-16BE。 + + 这一选项与 "-ul" 类似。 + + -v, --verbose + 显示更多信息。将会显示有关BOM和转换统计的额外信息。 + + -F, --follow-symlink + 追踪符号链接并转换其目标。 + + -R, --replace-symlink + 将符号链接的目标替换为转换后的文件(原来的目标文件保持不变)。 + + -S, --skip-symlink + 保持符号链接和其目标文件不变(默认)。 + + -V, --version + 显示版本信息,然后退出。 + +Mac模式 + 普通模式下,断行符将被转换为DOS格式,或相反。Mac格式的断行符将不会被转换。 + + Mac模式下,Mac断行符将被转换为Unix格式,或相反。DOS断行符将不会被转换。 + + 若要以Mac模式运行,请使用命令行选项 "-c mac",或使用命令 "mac2unix" 或 "unix2mac"。 + +转换模式 + ascii + 在 "ascii" 模式下,只转换断行符。 这是默认的转换模式。 + + 尽管此模式名叫“ASCII”(7位编码标准),实际上转换按照8位编码进行。转换UTF-8编码文件时请务必使用此模式。 + + 7bit + 在此模式下,所以的8位非ASCII字符(取值范围128-255)将被转换到7位编码空间。 + + iso Unix下,将在DOS字符集(编码页)和ISO字符集 ISO-8859-1(Latin-1)之间进行转换。不具有 ISO-8859-1 + 中对等字符的DOS字符将会被转换为点号(“.”)。当 ISO-8859-1 字符集中没有DOS中的对等字符时也是如此。 + + 当只指定了 "-iso" 选项时,dos2unix将尝试确定当前活动代码页。若无法确定,则使用默认代码页 + CP437(普遍用于美国)。若要强制指定代码页,请使用选项 + -437(美国)、-850(西欧)、-860(葡萄牙)、-863(法国、加拿大)或-865(北欧)。 Windows + CP1252代码页(西欧)也可以通过选项 -1252 获得支持。若要使用其他代码页,可以结合 iconv(1) + 使用dos2unix。iconv可以在很多字符编码间进行转换。 + + 不对Unicode编码文本使用ISO转换。因这一转换会导致UTF-8编码文件损坏。 + + 一些示例: + + 从DOS默认编码页转换到Unix Latin-1: + + dos2unix -iso -n in.txt out.txt + + 从DOS CP850转换到Unix Latin-1: + + dos2unix -850 -n in.txt out.txt + + 从Windows CP1252转换到Unix Latin-1: + + dos2unix -1252 -n in.txt out.txt + + 从WIndows CP1252转换到Unix UTF-8(Unicode): + + iconv -f CP1252 -t UTF-8 in.txt | dos2unix > out.txt + + 从Unix Latin-1转换到DOS默认编码页: + + unix2dos -iso -n in.txt out.txt + + 从Unix Latin-1转换到DOS CP850: + + unix2dos -850 -n in.txt out.txt + + 从Unix Latin-1转换到Windows CP1252: + + unix2dos -1252 -n in.txt out.txt + + 从Unix UTF-8(Unicode)转换到Windows CP1252: + + unix2dos < in.txt | iconv -f UTF-8 -t CP1252 > out.txt + + 参见 et + 。 + +UNICODE + 编码 + 有几种不同的Unicode编码。对于Unix和Linux中的Unicode文件,通常为UTF-8编码。Windows中的文本文件可以是UTF-8 + 、UTF-16或UTF-16BE编码,但大多采用UTF-16格式。 + + 转换 + Unicode文本文件可以含有DOS、Unix或Mac断行符,就像普通文本文件一样。 + + 所有版本的dos2unix和unix2dos都可以转换UTF-8文件,因为UTF-8向后兼容ASCII。 + + 含有Unicode UTF-16支持的dos2unix和unix2dos可以读取小尾序或大尾序的UTF-16编码文本。输入 "dos2unix + -V" 来确定dos2unix在编译是是否启用了UTF-16支持。 + + 在Unix/Linux中,UTF-16编码文件将被转换为区域字符编码所指定的编码。可以使用 locale(1) + 命令来查看当前的区域字符编码。若无法转换,程序将报告转换错误并跳过此文件。 + + 在Windows中,UTF-16文件被默认转换为UTF-8格式。Windows和Unix/Linux均支持UTF-8格式的文本文件。 + + UTF-16和UTF-8编码相互兼容,所以彼此转换时不会丢失文本。倘若转换中出错,比如UTF-16格式的输入文件含有错误,那么该文件将被跳过。 + + 若使用了 "-u" 选项,输出文件将会使用和输入文件相同的UTF-16编码。"-u"选项将阻止程序转换到UTF-8。 + + dos2unix和unix2dos没有用于转换UTF-8到UTF-16的选项。 + + ISO和7位编码模式的转换无法用于UTF-16文件。 + + 字节序标记 + 在Windows中,文本文件一般含有字节序标记(BOM),因为很多Windows程序(包括记事本)默认添加BOM。参见 + 。 + + 在Unix中,Unicode文件一般不含BOM。假定文本文件使用区域字符编码设置所指定的编码。 + + dos2unix只能检测含有BOM文件的UTF-16格式。若UTF-16文件不含BOM,dos2unix会将其视作二进制文件。 + + 请使用选项 "-ul" 或 "-ub" 来转换不含BOM的UTF-16文件。 + + dos2unix默认不输出BOM。使用 "-b" 选项可以让dos2unix将BOM添加到输出文件,如果输入文件也含有BOM的话。 + + unix2dos默认输出BOM,如果输入文件也含有BOM的话。使用 "-r" 可以移除BOM。 + + 若使用了 "-m" 选项,dos2unix和unix2dos将总是输出BOM。 + + Windows中Unicode文件的文件名 + dos2unix对于Windows命令提示符中读取和写入Unicode文件名有额外的支持。这意味着dos2unix可以打开那些包含非默认系统AN + SI编码页字符的文件。若要查看Windows版dos2unix在编译时是否加入了Unicode文件名支持,请输入 "dos2unix -V"。 + + 在Windows终端中显示Unicode文件名有一些需要注意的问题。请参见 "-D" 和 "--display-enc" + 选项。文件名在终端中可能无法被正确显示,但写入文件时文件名仍然是正确的。 + + Unicode示例 + 转换Windows UTF-16到Unix UTF-8: + + dos2unix -n in.txt out.txt + + 转换Windows UTF-16LE(不含BOM)到Unix UTF-8: + + dos2unix -ul -n in.txt out.txt + + 转换Unix UTF-8到Windows UTF-8(并添加BOM): + + unix2dos -m -n in.txt out.txt + + 转换Unix UTF-8到Windows UTF-16: + + unix2dos < in.txt | iconv -f UTF-8 -t UTF-16 > out.txt + +GB18030 + GB18030是中国国家标准。GB18030标准的一系列子集被强制应用于中国销售的软件产品。参见 + 。 + + GB18030与Unicode完全兼容,并且可以被认为是Unicode格式的变体。和UTF-8一样,GB18030也兼容ASCII。GB1803 + 0也兼容Windows 936代码页(GBK)。 + + 在Unix/Linux中,若区域编码被设置为GB18030,UTF-16文件将被转换为GB18030格式。注意只有当系统支持区域设置时这一才会进 + 行这一转换。可以使用 "locale -a" 命令来获取受支持的区域。 + + 在Windows中,你需要使用 "-gb" 选项来转换UTF-16文件到GB18030编码。 + + GB18030编码的文件和Unicode文件一样可以含有BOM。 + +示例 + 从标准输入读取,并输出到标准输出: + + dos2unix + dos2unix -l -c mac + + 转换并覆盖a.txt和b.txt: + + dos2unix a.txt b.txt + dos2unix -o a.txt b.txt + + 转换并覆盖a.txt,使用ascii模式: + + dos2unix a.txt + + 转换并覆盖a.txt,使用ascii模式;转换并覆盖b.txt,使用7位编码模式: + + dos2unix a.txt -c 7bit b.txt + dos2unix -c ascii a.txt -c 7bit b.txt + dos2unix -ascii a.txt -7 b.txt + + 将a.txt从Mac格式转换到Unix格式: + + dos2unix -c mac a.txt + mac2unix a.txt + + 将a.txt从Unix格式转换到Mac格式: + + unix2dos -c mac a.txt + unix2mac a.txt + + 转换并覆盖a.txt,保留原始时间戳: + + dos2unix -k a.txt + dos2unix -k -o a.txt + + 转换a.txt,并输出到e.txt: + + dos2unix -n a.txt e.txt + + 转换a.txt,并输出到e.txt,同时使e.txt的时间戳和a.txt一致: + + dos2unix -k -n a.txt e.txt + + 转换并覆盖a.txt;转换b.txt并输出到e.txt: + + dos2unix a.txt -n b.txt e.txt + dos2unix -o a.txt -n b.txt e.txt + + 转换c.txt并输出到e.txt;转换并覆盖a.txt和b.txt;转换d.txt并输出到f.txt: + + dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt + +递归转换 + 结合 find(1) 和 xargs(1) + 使用dos2unix可以递归地转换目录树中的文本文件。例如,转换当前目录的目录树中所有的.txt文件: + + find . -name '*.txt' |xargs dos2unix + + 在Windows命令提示符中,可以使用下列命令: + + for /R %G in (*.txt) do dos2unix "%G" + +区域 + LANG + LANG环境变量指定了程序所使用的首选语言。它包括几个部分:第一部分是小写的语言编码,第二部分是(可选的)大写的国家/地区代码,前面用下 + 划线连接;第三部分也是可选的,即字符编码,前面用点连接。一些POSIX规范的示例如下: + + export LANG=zh 中文 + export LANG=zh_CN 中文,中国 + export LANG=zh_TW 中文,台湾 + export LANG=es_ES 西班牙语,西班牙 + export LANG=es_MX 西班牙语,墨西哥 + export LANG=en_US.iso88591 英语,美国,Latin-1编码 + export LANG=en_GB.UTF-8 英语,英国,UTF-8编码 + + 完整的语言和国家/地区编码可以在gettext手册中找到: + + 在Unix系统中,你可以使用 locale(1) 命令获取特定区域的信息。 + + LANGUAGE + 可以使用LANGUAGE变量指定一系列语言的优先级,各项之间由冒号分割。dos2unix首先使用LANGUAGE变量,其次才是LANG。 + 例如,首选中文、其次英文:"LANGUAGE= + + 如果你选择了一个不可用的语言,程序将会输出标准的英语信息。 + + DOS2UNIX_LOCALEDIR + DOS2UNIX_LOCALEDIR环境变量将覆盖编译时设置的LOCALEDIR变量。LOCALEDIR被用于查找语言文件。GNU程序的 + 默认值为 "/usr/local/share/locale"。可以使用 --version 查看当前的LOCALEDIR。 + + 示例(POSIX shell): + + export DOS2UNIX_LOCALEDIR=$HOME/share/locale + +返回值 + 若成功,返回0。若出现系统错误,则返回最近一次系统错误号。若发生其他错误,返回1。 + + 在安静模式下,返回值总是为0,除非命令行选项有误。 + +遵循规范 + + + + + + + + +作者 + Benjamin Lin - Bernd Johannes Wuebben(mac2unix模式) + - ,Christian Wurll(添加额外新行) - ,Erwin + Waterlander - (维护者) + + 项目主页: + + SourceForge主页: + +参见 + file(1) find(1) iconv(1) locale(1) xargs(1) + -- cgit v1.2.3