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

Linuxコマンド シェルスクリプト

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

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

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

改行コードの種類

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

名称コードOS
CR
(Carrige Return)
\rMacOS(バージョン9まで)
LF
(Line Feed)
\nUnix, MacOSX以降
CR + LF\r\nWindows系
改行コード一覧

全部で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は複数の改行コードが混合している場合に判別しやすい
タイトルとURLをコピーしました