エンジニアをやっていると、様々なログファイルや成果ファイルたちに出会う。
拡張子も違えば、改行コードにも個性がある。
普段使わないような改行コードに出会ったときに
あわてふためかないための備忘録。
改行コードの種類
まずは改行コードの種類を知っておく必要がある。
名称 | コード | OS |
CR (Carrige Return) | \r | MacOS(バージョン9まで) |
LF (Line Feed) | \n | Unix, MacOSX以降 |
CR + LF | \r\n | Windows系 |
全部で3つだ。
CRはあまり見かけないので、実質2つだけ覚えれば良い。
確認方法
対象ファイルがどの改行コードを利用しているのかを調べるにはfile
コマンドを利用する。
このとき、文字コードもついでに調べることができる。
# LFのときは、特に何も表示されない
$ file fruits.csv
fruits.csv: ASCII text
# Windows系の改行コードは「CRLF」と表示される
$ file fruits.csv
fruits.csv: ASCII text, with CRLF line terminators
# 旧Mac系の改行コードは「CR」と表示される
$ file fruits.csv
fruits.csv: ASCII text, with CR line terminators
また、od
コマンドを使って確認する方法がある。
下記のようなcsvファイルがあり、末尾の改行コードを確認したい場合
fruits.csv
name,price
apple,100
banana,200
orange,300
od
コマンドの-c
オプションを利用することで可視化できる。
$ od -c fruits.csv
0000000 n a m e , p r i c e \n a p p l e
0000020 , 1 0 0 \n b a n a n a , 2 0 0 \n
0000040 o r a n g e , 3 0 0 \n
0000053
改行コードがLF(\n
)であることが分かる。
まとめ
file
コマンドでファイルのメタデータを確認od -c
は複数の改行コードが混合している場合に判別しやすい