catコマンドで改行記号確認

WindowsとMacintoshの両方で、テキストファイルをいじっていると改行記号が異なるためWindowsとMacintoshでテキストファイルの表示が異なる場合があり困ることが多い。
Macの方では、ちゃんと改行されているのに、Windowsの方のテキストエディタで開くと思ったように改行されていなかったり。

今回も博論の関係で、英文を添削業者にテキストファイルで提出したのだが、こちらがMacであちらがWindowsだったため、業者が開いたテキストファイルが、こちらの思ったように改行されていなくて困った。
なので、Macの改行記号をWindowsの改行記号に変更し、ちゃんと変更されているのかを確認する方法を備忘録のため書いておく。

テキストエディタで改行記号を確認できるエディタは、例えば、Windowsだとサクラエディタがあるが、Terminal上で改行記号を確認するときは、いつもcatコマンドを使う。

cat -e filename.txt

これだけで、改行記号を確認できる。
改行コードと改行記号、説明、対応する正規表現は以下の通り

改行コード改行記号説明正規表現
LF$Line Feed(Unix系全般)\n
CR^MCarriage Return(Mac OS 9以前)\r
CRLF^M$上記2つの合わせ技(Windows系)\r\n

こんな感じでTerminal上で確認できる。この例だと、改行記号はすべて^$Mになっているので、CRLF、つまりWindows対応の改行である。
改行記号の変換方法は、いろいろあるようだが、perlで正規表現を使って置換してやれば良い。

CRLFから、LF

perl -pi -e 's/\r\n/\n/g' *.txt

LFから、CRLF

perl -pi -e 's/\n/\r\n/g' *.txt

案外簡単。

参考リンク
https://en.wikipedia.org/wiki/Newline