生物物理計算化学者の雛

主に科学に関する諸々を書き留めています。

WindowsとLinuxの改行コード変換

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
    • 改行コードをWindowsからLinuxに変換する(文字コードを変換して指定ファイルが上書きされる)
  • unix2dos linux_code_text
    • 改行コードをLinuxからWindowsに変換する(文字コードを変換して指定ファイルが上書きされる)
# dos2unix 使用例 windows上で作成したテキストファイルの改行コードをLinuxのものに変換
dos2unix winText.txt
# unix2dos 使用例 改行コードをLinuxからWindowsに変更
unix2dos linuxText.txt
# 複数ファイルを同時に変換することも可能
dos2unix winText1.txt winText2.txt

Linux改行コードのファイルに dos2unix コマンドを適用してもファイル内容は変更されません。
そのためWindowsで作成された可能性があるファイルを入力としてプログラムを実行する場合、保険のために常に入力ファイルに対して dos2unix をかけておくと安全です。

改行コード指定保存ができる手軽なWindows上のテキストエディタ

Windowsの標準エディタである「メモ帳」は改行コードを指定して保存することができません。

改行コードを指定して保存できる手軽なテキストエディタとして「terapad」はオススメです。