dos2unix - DOS/Mac 與 Unix 文字檔格式轉換器(雙向)
dos2unix [options] [FILE ...] [-n INFILE OUTFILE ...]
unix2dos [options] [FILE ...] [-n INFILE OUTFILE ...]
dos2unix 套件包含 dos2unix 與 unix2dos 兩支工具程式,可將 DOS 或 Mac 格式的純文字檔轉換為 Unix 格式,反之亦然。
在 DOS/Windows 文字檔中,換行(又稱 newline)由兩個字元組成:一個歸位字元 (CR) 後接一個換行字元 (LF)。在 Unix 文字檔中,換行是單一字元:換行字元 (LF)。在 Mac OS X 之前的 Mac 文字檔中,換行是單一的歸位字元 (CR)。現今的 Mac OS 使用 Unix 風格的換行 (LF)。
除了換行之外,dos2unix 也可以轉換檔案的編碼。少數 DOS 碼頁可以轉換為 Unix Latin-1。Windows 的 Unicode (UTF-16) 檔可以轉換為 Unix 的 Unicode (UTF-8) 檔。
二進位檔會自動略過,除非強制轉換。
非常規檔案(例如目錄與 FIFO)會自動略過。
依預設,符號連結及其目標會保持不變。也可以選擇以轉換後的檔案取代符號連結,或將輸出寫入符號連結的目標。在 Windows 上不支援寫入符號連結的目標。
dos2unix 是以 SunOS/Solaris 下的 dos2unix 為藍本。與原始的 SunOS/Solaris 版本有一個重要差異:此版本預設進行就地轉換(舊檔模式),而原始的 SunOS/Solaris 版本只支援成對轉換(新檔模式)。另請參見 -o 與 -n 選項。另一個差異是 SunOS/Solaris 版本預設使用 iso 模式轉換,而此版本預設使用 ascii 模式轉換。
將之後所有選項視為檔案名稱。若您想轉換名稱以連字號開頭的檔案,請使用這個選項。例如要轉換名為「-foo」的檔案,可以使用這個命令:
dos2unix -- -foo
或使用新檔模式:
dos2unix -n -- -foo out.txt
允許在舊檔模式中變更檔案擁有權。
使用此選項時,若在舊檔模式中無法保留原始檔案的擁有者與/或群組,轉換不會中止。轉換會繼續進行,轉換後的檔案會取得與在新檔模式中轉換相同的擁有權。另請參見 -o 與 -n 選項。只有當 dos2unix 支援保留檔案的使用者與群組擁有權時,這個選項才可用。
預設轉換模式。另請參見「轉換模式」一節。
在 DOS 與 ISO-8859-1 字元集之間轉換。另請參見「轉換模式」一節。
使用 Windows 碼頁 1252(西歐)。
使用 DOS 碼頁 437(美國)。這是 ISO 轉換所使用的預設碼頁。
使用 DOS 碼頁 850(西歐)。
使用 DOS 碼頁 860(葡萄牙)。
使用 DOS 碼頁 863(法屬加拿大)。
使用 DOS 碼頁 865(北歐)。
將 8 位元字元轉換為 7 位元空白。
保留位元組順序標記 (BOM)。當輸入檔有 BOM 時,在輸出檔中寫入 BOM。這是轉換為 DOS 換行時的預設行為。另請參見 -r 選項。
設定轉換模式。CONVMODE 為下列之一:ascii、7bit、iso、mac,預設為 ascii。
設定顯示文字所使用的編碼。ENCODING 為下列之一:ansi、unicode、unicodebom、utf8、utf8bom,預設為 ansi。
這個選項僅在支援 Unicode 檔案名稱的 Windows 版 dos2unix 中可用。此選項不會影響實際讀寫的檔案名稱,只影響它們的顯示方式。
在 Windows 主控台中,依文字的編碼有數種顯示方法。它們各有優缺點。
dos2unix 的預設方法是使用 ANSI 編碼的文字。優點是向下相容,可搭配點陣與 TrueType 字型。在某些地區,您可能需要使用 chcp 命令將作用中的 DOS OEM 碼頁變更為 Windows 系統 ANSI 碼頁,因為 dos2unix 使用 Windows 系統碼頁。
ansi 的缺點是,內含系統預設碼頁之外字元的國際化檔案名稱無法正確顯示,您會看到問號或不正確的符號。當您沒有處理外國檔案名稱時,這個方法就夠用了。
unicode(Windows 對 UTF-16 的稱呼)編碼的優點是文字通常能正確顯示,不需要變更作用中的碼頁。您可能需要將主控台的字型設定為 TrueType 字型,才能正確顯示國際化字元。當字元不在 TrueType 字型中時,通常會看到一個小方塊,有時方塊內含問號。
使用 ConEmu 主控台時,所有文字都能正確顯示,因為 ConEmu 會自動選取合適的字型。
unicode 的缺點是與 ASCII 不相容。當您將輸出重新導向到另一個程式時,不易處理。
使用 unicodebom 方法時,Unicode 文字前會加上 BOM(位元組順序標記)。在 PowerShell 中要正確重新導向或進行管道處理時需要 BOM。
utf8 的優點是與 ASCII 相容。您需要將主控台的字型設定為 TrueType 字型。使用 TrueType 字型時,文字的顯示方式與 unicode 編碼類似。
缺點是當您使用預設的點陣字型時,所有非 ASCII 字元都會顯示錯誤。不只 unicode 檔案名稱,連翻譯後的訊息也會變得無法閱讀。在設定為東亞地區的 Windows 上,顯示訊息時主控台可能會閃爍得很厲害。
在 ConEmu 主控台中,utf8 編碼方法運作良好。
使用 utf8bom 方法時,UTF-8 文字前會加上 BOM(位元組順序標記)。在 PowerShell 中要正確重新導向或進行管道處理時需要 BOM。
預設編碼可以透過環境變數 DOS2UNIX_DISPLAY_ENC 變更,將其設為 unicode、unicodebom、utf8 或 utf8bom。
如果最後一行沒有換行,就加上換行。這適用於所有轉換。
從 DOS 轉換為 Unix 格式的檔案,最後一行可能缺少換行。有些文字編輯器寫入文字檔時,最後一行沒有換行。部分 Unix 程式處理這類檔案會有問題,因為 POSIX 標準規定文字檔中的每一行都必須以換行字元結尾。例如串接檔案可能得不到預期的結果。
當二進位檔被略過時回傳錯誤。
強制轉換二進位檔。
在 Windows 上,無論 locale 設定為何,UTF-16 檔預設都會轉換為 UTF-8。使用這個選項可將 UTF-16 檔轉換為 GB18030。此選項僅在 Windows 上可用。另請參見「GB18030」一節。
顯示說明後結束。
顯示檔案資訊。不進行轉換。
依下列順序列印資訊:DOS 換行數、Unix 換行數、Mac 換行數、位元組順序標記、文字或二進位、檔案名稱。
輸出範例:
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
請注意,二進位檔有時會被誤認為文字檔。另請參見 -s 選項。
若另外使用了 -e 或 --add-eol 選項,也會列印最後一行換行的類型,若沒有換行則列印 noeol。
輸出範例:
6 0 0 no_bom text dos dos.txt
0 6 0 no_bom text unix unix.txt
0 0 6 no_bom text mac mac.txt
1 0 0 no_bom text noeol noeol_dos.txt
您可以選擇性地設定其他旗標來變更輸出。可以加入一個以上的旗標。
列印檔案資訊列後跟一個 null 字元,而非換行字元。這樣在使用 c 旗標時,可以正確解讀含有空格或引號的檔案名稱。請搭配 xargs(1) 的 -0 或 --null 選項使用這個旗標。
列印 DOS 換行數。
列印 Unix 換行數。
列印 Mac 換行數。
列印位元組順序標記。
列印檔案是文字或二進位。
列印最後一行換行的類型,若沒有換行則列印 noeol。
只列印會被轉換的檔案。
使用 c 旗標時,dos2unix 只會列印含有 DOS 換行的檔案,unix2dos 只會列印含有 Unix 換行的檔案名稱。
若另外使用了 -e 或 --add-eol 選項,也會列印最後一行缺少換行的檔案。
列印標題列。
只顯示檔案名稱,不含路徑。
範例:
顯示所有 *.txt 檔案的資訊:
dos2unix -i *.txt
只顯示 DOS 換行數與 Unix 換行數:
dos2unix -idu *.txt
只顯示位元組順序標記:
dos2unix --info=b *.txt
列出含有 DOS 換行的檔案:
dos2unix -ic *.txt
列出含有 Unix 換行的檔案:
unix2dos -ic *.txt
列出含有 DOS 換行或最後一行缺少換行的檔案:
dos2unix -e -ic *.txt
只轉換含有 DOS 換行的檔案,其他檔案保持原樣:
dos2unix -ic0 *.txt | xargs -0 dos2unix
找出含有 DOS 換行的文字檔:
find -name '*.txt' -print0 | xargs -0 dos2unix -ic
讓輸出檔的日期戳記與輸入檔相同。
顯示程式的授權。
額外加入換行。
dos2unix:只將 DOS 換行變更為兩個 Unix 換行。在 Mac 模式中,只將 Mac 換行變更為兩個 Unix 換行。
unix2dos:只將 Unix 換行變更為兩個 DOS 換行。在 Mac 模式中,Unix 換行變更為兩個 Mac 換行。
在輸出檔中寫入位元組順序標記 (BOM)。預設寫入 UTF-8 BOM。
當輸入檔是 UTF-16,且使用了 -u 選項時,會寫入 UTF-16 BOM。
當輸出編碼不是 UTF-8、UTF-16 或 GB18030 時,絕對不要使用這個選項。另請參見「Unicode」一節。
新檔模式。轉換檔案 INFILE 並將輸出寫入檔案 OUTFILE。檔案名稱必須成對提供,且萬用字元名稱 不應 使用,否則您 會 遺失您的檔案。
在新檔(成對)模式中啟動轉換的人,會是轉換後檔案的擁有者。新檔案的讀寫權限會是原始檔案的權限減去執行轉換者的 umask(1)。
不允許在舊檔模式中變更檔案擁有權(預設)。
當在舊檔模式中無法保留原始檔案的使用者與/或群組擁有權時,中止轉換。另請參見 -o 與 -n 選項。只有當 dos2unix 支援保留檔案的使用者與群組擁有權時,這個選項才可用。
如果最後一行沒有換行,不要加上換行(預設)。
當二進位檔被略過時不回傳錯誤(預設)。
寫入標準輸出,就像 Unix 濾波器一樣。使用 -o 選項可回到舊檔(就地)模式。
搭配 -e 選項時,可以正確地串接檔案。不會合併最後一行與第一行,串接後的檔案中間也不會有 Unicode 位元組順序標記。範例:
dos2unix -e -O file1.txt file2.txt > output.txt
舊檔模式。轉換檔案 FILE 並將輸出覆寫回該檔案。程式預設以此模式執行。可以使用萬用字元名稱。
在舊檔(就地)模式中,轉換後的檔案會取得與原始檔案相同的擁有者、群組與讀寫權限。即使轉換是由其他對該檔案有寫入權限的使用者(例如 root 使用者)執行亦然。當無法保留原始值時,轉換會中止。變更擁有者可能意味著原始擁有者再也無法讀取檔案。變更群組可能造成安全風險,檔案可能因此可被非預期的人讀取。保留擁有者、群組與讀寫權限僅在 Unix 上支援。
若要檢查 dos2unix 是否支援保留檔案的使用者與群組擁有權,請輸入 dos2unix -V。
轉換一律透過暫存檔進行。當轉換中途發生錯誤時,暫存檔會被刪除,原始檔案保持完整。轉換成功時,原始檔案會被暫存檔取代。您可能對原始檔案有寫入權限,但沒有權限將與原始檔案相同的使用者與/或群組擁有權屬性設定到暫存檔上。這表示您無法保留原始檔案的使用者與/或群組擁有權。此時您可以使用 --allow-chown 選項繼續轉換:
dos2unix --allow-chown foo.txt
另一個選項是使用新檔模式:
dos2unix -n foo.txt foo.txt
--allow-chown 選項的優點是您可以使用萬用字元,且擁有權屬性會在可能時保留。
安靜模式。隱藏所有警告與訊息。回傳值為零。除非使用了錯誤的命令列選項。
移除位元組順序標記 (BOM)。不在輸出檔中寫入 BOM。這是轉換為 Unix 換行時的預設行為。另請參見 -b 選項。
略過二進位檔(預設)。
略過二進位檔是為了避免意外錯誤。請注意,二進位檔的偵測並非 100% 萬無一失。輸入檔會掃描通常不會出現在文字檔中的二進位符號。二進位檔有可能只包含正常的文字字元。這樣的二進位檔會被誤判為文字檔。
依預設,二進位檔被略過時不會回傳錯誤。使用 --error-binary 選項時會回傳錯誤。
保留輸入檔原本的 UTF-16 編碼。輸出檔會以與輸入檔相同的 UTF-16 編碼(little-endian 或 big-endian)寫入。這可以避免轉換為 UTF-8。會相應地寫入 UTF-16 BOM。這個選項可以用 -ascii 選項停用。
假定輸入檔的格式是 UTF-16LE。
當輸入檔中有位元組順序標記時,BOM 的優先順序高於這個選項。
當您做了錯誤的假定(輸入檔並非 UTF-16LE 格式)且轉換成功時,您會得到含有錯誤文字的 UTF-8 輸出檔。您可以使用 iconv(1) 將 UTF-8 輸出檔轉換回 UTF-16LE,以復原錯誤的轉換。這會還原原始檔案。
UTF-16LE 的假定以 轉換模式 運作。切換回預設的 ascii 模式時,UTF-16LE 假定會關閉。
假定輸入檔的格式是 UTF-16BE。
這個選項與 -ul 選項作用相同。
顯示詳細訊息。會顯示關於位元組順序標記與轉換換行數量的額外資訊。
跟隨符號連結並轉換其目標。
以轉換後的檔案取代符號連結(原始目標檔案保持不變)。
保持符號連結與目標不變(預設)。
顯示版本資訊後結束。
依預設,換行會從 DOS 轉換為 Unix,反之亦然。Mac 換行不會被轉換。
在 Mac 模式中,換行會從 Mac 轉換為 Unix,反之亦然。DOS 換行不會被變更。
若要執行 Mac 模式,請使用命令列選項 -c mac,或使用 mac2unix 或 unix2mac 命令。
這是預設的轉換模式。此模式用於轉換 ASCII 及與 ASCII 相容的編碼檔案,例如 UTF-8。啟用 ascii 模式會停用 7bit 與 iso 模式。
若 dos2unix 支援 UTF-16,UTF-16 編碼的檔案在 POSIX 系統上會轉換為目前的 locale 字元編碼,在 Windows 上則轉換為 UTF-8。啟用 ascii 模式會停用保留 UTF-16 編碼的選項 (-u),以及假定 UTF-16 輸入的選項 (-ul 與 -ub)。若要查看 dos2unix 是否支援 UTF-16,請輸入 dos2unix -V。另請參見「Unicode」一節。
在此模式中,所有 8 位元非 ASCII 字元(值介於 128 到 255)都會轉換為 7 位元空白。
字元會在 DOS 字元集(碼頁)與 Unix 上的 ISO 字元集 ISO-8859-1 (Latin-1) 之間轉換。沒有 ISO-8859-1 對應、無法轉換的 DOS 字元會轉換為句點。沒有 DOS 對應的 ISO-8859-1 字元亦然。
只使用 -iso 選項時,dos2unix 會嘗試判斷作用中的碼頁。若無法判斷,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
另請參見 https://czyborra.com/charsets/codepages.html 與 https://czyborra.com/charsets/iso8859.html。
存在不同的 Unicode 編碼。在 Unix 與 Linux 上,Unicode 檔案通常以 UTF-8 編碼。在 Windows 上,Unicode 文字檔可以編碼為 UTF-8、UTF-16 或 UTF-16 big-endian,但大多編碼為 UTF-16 格式。
Unicode 文字檔可以有 DOS、Unix 或 Mac 換行,就像 ASCII 文字檔一樣。
所有版本的 dos2unix 與 unix2dos 都可以轉換 UTF-8 編碼的檔案,因為 UTF-8 是以與 ASCII 的向下相容為設計目標。
具備 Unicode UTF-16 支援的 dos2unix 與 unix2dos 可以讀取 little-endian 與 big-endian 的 UTF-16 編碼文字檔。若要查看 dos2unix 是否以 UTF-16 支援建置,請輸入 dos2unix -V。
在 Unix/Linux 上,UTF-16 編碼的檔案會轉換為 locale 字元編碼。可以使用 locale(1) 命令查詢 locale 字元編碼。當無法轉換時會發生轉換錯誤,且檔案會被略過。
在 Windows 上,UTF-16 檔預設轉換為 UTF-8。UTF-8 格式的文字檔在 Windows 與 Unix/Linux 上都支援良好。
UTF-16 與 UTF-8 編碼完全相容,轉換時不會有文字遺失。當 UTF-16 轉 UTF-8 發生轉換錯誤時,例如 UTF-16 輸入檔內容有誤,檔案會被略過。
使用 -u 選項時,輸出檔會以與輸入檔相同的 UTF-16 編碼寫入。-u 選項可避免轉換為 UTF-8。
dos2unix 與 unix2dos 沒有將 UTF-8 檔轉換為 UTF-16 的選項。
ISO 與 7-bit 模式轉換不適用於 UTF-16 檔。
在 Windows 上,Unicode 文字檔通常有位元組順序標記 (BOM),因為許多 Windows 程式(包括記事本)預設會加入 BOM。另請參見 https://en.wikipedia.org/wiki/Byte_order_mark。
在 Unix 上,Unicode 檔通常沒有 BOM。一般假定文字檔以 locale 字元編碼。
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。
dos2unix 在 Windows 命令提示字元中,選擇性地支援讀寫 Unicode 檔案名稱。這表示 dos2unix 可以開啟名稱中含有不屬於系統預設 ANSI 碼頁之字元的檔案。若要查看 Windows 版 dos2unix 是否以 Unicode 檔案名稱支援建置,請輸入 dos2unix -V。
在 Windows 主控台中顯示 Unicode 檔案名稱有一些問題。請參見 -D、--display-enc 選項。檔案名稱在主控台中的顯示可能錯誤,但檔案會以正確名稱寫入。
從 Windows UTF-16(含 BOM)轉換為 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 轉換為含 BOM 的 Windows UTF-8:
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 標準的強制子集。另請參見 https://en.wikipedia.org/wiki/GB_18030。
GB18030 與 Unicode 完全相容,可視為一種 unicode 轉換格式。與 UTF-8 一樣,GB18030 與 ASCII 相容。GB18030 也與 Windows 碼頁 936(又稱 GBK)相容。
在 Unix/Linux 上,當 locale 編碼設為 GB18030 時,UTF-16 檔會轉換為 GB18030。請注意,這只有在系統支援該 locale 時才會運作。使用 locale -a 命令可取得受支援 locale 的清單。
在 Windows 上,您需要使用 -gb 選項將 UTF-16 檔轉換為 GB18030。
GB18030 編碼的檔案可以有位元組順序標記,就像 Unicode 檔一樣。
從「stdin」讀取輸入,並將輸出寫入「stdout」:
dos2unix < a.txt
cat a.txt | dos2unix
轉換並取代 a.txt。轉換並取代 b.txt:
dos2unix a.txt b.txt
dos2unix -o a.txt b.txt
以 ascii 轉換模式轉換並取代 a.txt:
dos2unix a.txt
以 ascii 轉換模式轉換並取代 a.txt,以 7bit 轉換模式轉換並取代 b.txt:
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
在 Unix shell 中,可以使用 find(1) 與 xargs(1) 命令,在目錄樹中的所有文字檔上遞迴執行 dos2unix。例如要轉換目前目錄下目錄樹中的所有 .txt 檔,請輸入:
find . -name '*.txt' -print0 |xargs -0 dos2unix
當有檔案名稱含有空格或引號時,需要 find(1) 的 -print0 選項與對應的 xargs(1) -0 選項。否則可以省略這些選項。另一個選項是搭配 -exec 選項使用 find(1):
find . -name '*.txt' -exec dos2unix {} \;
在 Windows 命令提示字元中,可以使用下列命令:
for /R %G in (*.txt) do dos2unix "%G"
PowerShell 使用者可以在 Windows PowerShell 中使用下列命令:
get-childitem -path . -filter '*.txt' -recurse | foreach-object {dos2unix $_.Fullname}
主要語言以環境變數 LANG 選取。LANG 變數由數個部分組成。第一部分是小寫的語言代碼。第二部分可選,是前接底線的大寫國家代碼。第三部分也可選:字元編碼,前接一個句點。POSIX 標準型 shell 的幾個範例:
export LANG=nl Dutch
export LANG=nl_NL Dutch, The Netherlands
export LANG=nl_BE Dutch, Belgium
export LANG=es_ES Spanish, Spain
export LANG=es_MX Spanish, Mexico
export LANG=en_US.iso88591 English, USA, Latin-1 encoding
export LANG=en_GB.UTF-8 English, UK, UTF-8 encoding
語言與國家代碼的完整清單請參見 gettext 手冊:https://www.gnu.org/software/gettext/manual/html_node/Usual-Language-Codes.html
在 Unix 系統上,您可以使用 locale(1) 命令取得 locale 相關資訊。
使用 LANGUAGE 環境變數,您可以指定以冒號分隔的語言優先順序清單。dos2unix 偏好 LANGUAGE 勝過 LANG。例如,先荷蘭語後德語:LANGUAGE=nl:de。您必須先啟用在地化,將 LANG(或 LC_ALL)設為「C」以外的值,才能透過 LANGUAGE 變數使用語言優先順序清單。另請參見 gettext 手冊:https://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html
如果您選取的語言不可用,您會看到標準英文訊息。
使用環境變數 DOS2UNIX_LOCALEDIR 可以覆寫編譯期間設定的 LOCALEDIR。LOCALEDIR 用於尋找語言檔。GNU 預設值為 /usr/local/share/locale。--version 選項會顯示所使用的 LOCALEDIR。
範例(POSIX shell):
export DOS2UNIX_LOCALEDIR=$HOME/share/locale
成功時回傳零。發生系統錯誤時,會回傳最後一個系統錯誤。其他錯誤回傳 1。
在安靜模式中,回傳值一律為零,除非使用了錯誤的命令列選項。
https://en.wikipedia.org/wiki/Text_file
https://en.wikipedia.org/wiki/Carriage_return
https://en.wikipedia.org/wiki/Newline
https://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>(維護者)
專案頁面:https://waterlander.net/dos2unix/
SourceForge 頁面:https://sourceforge.net/projects/dos2unix/
file(1) find(1) iconv(1) locale(1) xargs(1)