27. 轉換 DOS/UNIX 檔案案格式

本章介紹如何將 DOS 格式的檔案和 UNIX 格式的檔案互相轉換。

DOS/Windows 平台上的文字檔,每一列的結束符號有二個字元,分別是歸位字元13 (carriage return,^M)以及新列字元10 (new line,^J),,但 UNIX 平台則不同,UNIX 平台只使用一個新列字元 \n (^J)。因此,當您將 DOS 的文字檔欲放入 UNIX 平台時,應將 DOS 的結束符號換成 UNIX 的結束符號,否則 UNIX 平台上的應用程式可能會誤判,比如 vim 讀取 DOS 格式的文字檔時,會在每一列出現 ^M 的特殊符號(^M 就是 carriage return)

通常,當您使用 FTP 軟體上傳時,聰明的 FTP 軟體通常會幫您自動做轉換;或者,您也可以利用 unix2dos / dos2unix 程式來做轉換。這裡我們要介紹,如何用 Perl 來做到相同的功能。

27.1 DOS 轉成 UNIX

dos2ux.pl

#! /usr/bin/perl -i

while (<>) {
	s/\015\012//;
	print $_ . "\n";
}

用例:


./dos2ux.pl dos-test.txt