エンジニアを目指す初学者に向けて、わかりやすく解説したブログです。
サイトをリニューアルしました

【Linux】改行コードの確認を行うコマンド

エンジニアをやっていると、様々なログファイルや成果ファイルたちに出会う。

拡張子も違えば、改行コードにも個性がある。

普段使わないような改行コードに出会ったときに
あわてふためかないための備忘録。

改行コードの種類

まずは改行コードの種類を知っておく必要がある。

名称 コード 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は複数の改行コードが混合している場合に判別しやすい