unix2dos はテキストファイルの改行を LF(Unix/Linux) から CRLF(DOS/Windows) へ変換するコマンドです。BOM の付与/除去や文字コード変換(ISOコードページ/UTF-16の扱い)にも対応します。日常では「Linuxで作成した設定/スクリプトをWindowsで開く前に整形」「混在改行の是正」などで使います。(manpages.debian.org)
構文(Syntax)
# インプレース変換(既定)
unix2dos [OPTIONS] FILE...
# 新しいファイルに書き出し(ペア指定)
unix2dos -n INFILE OUTFILE [INFILE OUTFILE]...
# フィルタとして標準出力へ
unix2dos -O FILE1 [FILE2 ...] > OUTPUT
- 既定は インプレース(
-o, --oldfile)。 -nは IN/OUT をペアで与える必要があります(ワイルドカード不可)。(manpages.debian.org)
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-o, --oldfile FILE... | 既存ファイルをその場で変換(既定)。所有者/権限を保持(Unix)。 | unix2dos -o notes.txt (manpages.debian.org) |
-n, --newfile IN OUT ... | 新しいファイルへ書き出し。IN/OUT は必ずペア。 | unix2dos -n a.txt a.crlf.txt (manpages.debian.org) |
-O, --to-stdout | 標準出力へ書き出す(パイプ処理用)。 | unix2dos -O a.txt b.txt > out.txt (manpages.debian.org) |
-k, --keepdate | 出力のタイムスタンプを入力と同じに保つ。 | unix2dos -k -o file.txt (manpages.debian.org) |
-q/ -v | 静音 / 詳細ログ。 | unix2dos -v file.txt (manpages.debian.org) |
-s, --safe / -f, --force | バイナリを自動スキップ(既定)/強制変換。 | unix2dos -f binlike.dat (manpages.debian.org) |
-b, --keep-bom | 入力に BOM があれば出力にも残す(DOS側既定)。 | unix2dos -b utf8bom.txt (manpages.debian.org) |
-r, --remove-bom | BOM を出力しない。 | unix2dos -r utf8.txt (manpages.debian.org) |
-m, --add-bom | 出力に BOM を付与(既定は UTF-8)。 | unix2dos -m log.txt (manpages.debian.org) |
-u, --keep-utf16 | UTF-16 入力を UTF-16 のまま出力(LE/BE保持、BOM付与)。 | unix2dos -u -n in.txt out.txt (manpages.debian.org) |
-ul / -ub | BOM の無い UTF-16 を LE/BE と仮定して処理。 | unix2dos -ul -n in.txt out.txt (manpages.debian.org) |
-c {ascii,7bit,iso,mac} | 変換モード(ascii既定。isoは Latin-1 と各CP間の変換、macでMac改行↔変換)。 | unix2dos -c iso -n latin1.txt cp850.txt (manpages.debian.org) |
-437/-850/-860/-863/-865/-1252 | ISO 変換時のDOS/Windowsコードページ指定。 | unix2dos -850 -n in.txt out.txt (manpages.debian.org) |
-i[FLAGS], --info[=FLAGS] | 変換せずに改行/BOMなどの情報を表示。 | unix2dos -ic *.txt (manpages.debian.org) |
-e, --add-eol / -l, --newline | 最終行に改行を付与 / 追加の改行を入れる(挙動は man 参照)。 | unix2dos -e -O a.txt b.txt > out.txt (manpages.debian.org) |
-F/-R/-S | シンボリックリンク: 追従/置換/スキップ。 | unix2dos -F docs/* (manpages.debian.org) |
BOMの既定:
unix2dosは「入力に BOM があれば出力にも BOM を付ける」動作が既定です(-rで除去、-mで常に付与)。dos2unixは逆に既定で BOM を書きません。(manpages.debian.org)
実行例
Windows向けにCRLFへインプレース変換
説明: 既存ファイルを書き換えて LF→CRLF にします。
コマンド:
unix2dos -o README.md
元ファイルを残しつつ別名で保存(安全運用)
説明: -n は IN/OUT のペアを必ず指定します。
コマンド:
unix2dos -n script.sh script.crlf.sh
(ペアで指定しないとエラーになります) (manpages.debian.org)
連結用にフィルタ出力(最終行に改行を保証)
説明: 2つのファイルを CRLF で整形しつつ結合します。
コマンド:
unix2dos -e -O part1.txt part2.txt > merged.txt
(-O は標準出力へ、-e は最終行の改行不足を補います) (manpages.debian.org)
BOM の制御(付与/除去)
説明: Notepad 互換のため BOM を付ける、または不要なら外す。
コマンド:
unix2dos -m report.txt # BOM を付与(UTF-8 BOM)
unix2dos -r utf8bom.txt # BOM を除去して CRLF 化
ISOコードページを指定して変換(Latin-1→CP850例)
説明: 文字集合の相互変換を伴う CRLF 化。
コマンド:
unix2dos -c iso -850 -n latin1.txt out_cp850.txt
エラー例:-n のペア不足
説明: -n で IN/OUT を片方だけ指定すると失敗します。
コマンド:
unix2dos -n a.txt
出力例(例):
files must be specified in pairs for --newfile
(正しくは unix2dos -n a.txt a.crlf.txt) (manpages.debian.org)
関連コマンド
dos2unix:CRLF/CR → LF へ変換(逆方向)。BOM 既定は出力しない。(manpages.debian.org)mac2unix/unix2mac:旧Mac形式(CR)の相互変換(-c macと同等)。(manpages.debian.org)file:ファイル種別や BOM/エンコーディング検出。iconv:文字コード変換(CP ↔ UTF-8 等)。(manpages.debian.org)sed/tr:簡易な改行置換の代替。(Stack Overflow)
備考
- 再帰処理:ディレクトリ配下の一括変換は
find ... -print0 | xargs -0 unix2dosのように実現(man に例あり)。(manpages.debian.org) - バイナリ判定:既定でバイナリはスキップしますが万能ではありません。確信がある場合のみ
-fを使用。(manpages.debian.org) - Macモード:
-c macで Mac 改行(CR)との相互変換に切り替わります。専用コマンドunix2macも同等。(manpages.debian.org) - コードページ:
-c isoと-437/-850/...を併用して DOS/Windows の各CPへ。Unicode(UTF-8/UTF-16)には ISO/7bit 変換を使わないでください。(manpages.debian.org) - 権限/所有者:インプレース時は元の所有者/グループ/権限を保持。保持できない場合は中止されます(必要なら
--allow-chown参照)。(manpages.debian.org)
参考
- Debian manページ(unix2dos/dos2unix 総合)
https://manpages.debian.org/testing/dos2unix/unix2dos.1.en.html (manpages.debian.org) - 公式サイト(ドキュメント/ダウンロード)
https://dos2unix.sourceforge.io/ (dos2unix.sourceforge.io) - Ubuntu manページ(概要の補足)
https://manpages.ubuntu.com/manpages/trusty/man1/dos2unix.1.html (Ubuntu Manpage) - Kali Tools(パッケージ概要)
https://www.kali.org/tools/dos2unix/ (Kali Linux) - 文字コードとコードページの注意(man内の該当節)
https://manpages.debian.org/testing/dos2unix/unix2dos.1.en.html#CONVERSION_MODES (manpages.debian.org)

コメント