unix2dos(またはと呼ばれることもあるtodos)は、テキストファイルの改行をUnix形式(ラインフィード)からDOS形式(キャリッジリターン+ラインフィード)に変換し、またその逆も行うu2dツールです。として呼び出されると、プログラムはUnixテキストファイルをDOS形式に変換し、として呼び出されると、DOSテキストファイルをUnix形式に変換します。[ 2 ]unix2dosdos2unix
Unix2dosとdos2unixはUnix標準の一部ではありません。商用Unixには通常、SunOS/Solarisのdos2unix/unix2dos、HP-UXのdos2ux/ux2dos 、 Irixのto_unix/to_dosのように、独自のunix2dos/dos2unixの実装が付属しています。
dos2unix/unix2dos、d2u/u2d、fromdos/todos、endlines、flipなど、さまざまなコマンド名とオプションを持つオープンソースの代替手段が多数存在します。マルチコールバイナリのbusyboxには、unix2dos/dos2unixの実装が含まれています。
各コマンドのマニュアルページを参照してください。
$ recode latin1..dosファイル $ perl-i-p-e's|[\r\n]+|\r\n|g'file$ sed-i-n-z's/\r*\n/\r\n/g;p'file逆変換(dos2unix)の場合は、例えば、キャリッジリターン文字を削除するフラグを指定したユーティリティtrを使用できます。-d '\r'
$ tr-d'\r'<file>file2# For ASCII and other files which do not contain multibyte characters (Not utf-8 safe).$ perl-i-p-e's/\r//g'file$ sed-i-e's/\r//g'file注:上記の方法は、入力ファイルにDOSの改行コードのみが含まれていることを前提としています。入力ファイルに含まれるMacの改行コード(\r)はすべて削除されます。
dos2unix変換の代替手段として、LinuxcolやMac OS Xを含む他のUnix系オペレーティングシステムで利用可能なコマンドを使用する方法があります。以下の例では、InFileには不要なDOS(^M)改行コードが含まれています。実行後、OutFileが作成または置き換えられ、UNIXの改行コードが含まれます。このオプションは、バックスペース文字を出力しないように指示します。-bcol
$ col -b <入力ファイル>出力ファイル