WindowsとLinux(とOS9以前のMac)では改行コードが以下のように異なります。
OS | 改行コード | 文字コード |
Windows | CR+LF | \r\n |
Linux | LF | \n |
Mac (OS9以前) | CR | \r |
Linux上でプログラムを実行する際に、入力ファイルの文字コードがWindowsのものになっているとエラーが起きてしまうことがある等、文字コードの違いには注意する必要があります。
Linuxコマンドにより改行コードを変換する
Linuxには改行コードを変換するプログラム dos2unix, unix2dos が用意されています。
- dos2unix win_code_text
- unix2dos linux_code_text
# dos2unix 使用例 windows上で作成したテキストファイルの改行コードをLinuxのものに変換 dos2unix winText.txt # unix2dos 使用例 改行コードをLinuxからWindowsに変更 unix2dos linuxText.txt # 複数ファイルを同時に変換することも可能 dos2unix winText1.txt winText2.txt
Linux改行コードのファイルに dos2unix コマンドを適用してもファイル内容は変更されません。
そのためWindowsで作成された可能性があるファイルを入力としてプログラムを実行する場合、保険のために常に入力ファイルに対して dos2unix をかけておくと安全です。