Skip to content
10月 29 / rakkyoo

csvファイルのヘッダーを確認


データファイルを扱うときに,列の区切りが「,」(カンマ)で,行の区切りが改行のファイル(CSVファイル)を扱うことが多いです.
そのファイルの解析プログラムを作っているときに,各列番号とその内容の関係を確認したいときがよくあります.
そのようなときに,ターミナル上で,かんたんに確認しています.
いつも使っているコマンドは,

    • head
    • tr
    • cat

の3つです.
たとえば,CSVファイル:「test.csv」が

row1,row2,row3,row4,row5
1,1,1,1,1

2,2,2,2,2
3,3,3,3,3
4,4,4,4,4
5,5,5,5,5

となっているファイルについて考えると,,,

1.「head」コマンドについて

「head」コマンドは,ファイルの先頭10行を表示してくれる便利なコマンドです.
オプションを指定することで,表示したい行数を指定できます.
CSVファイル「test.csv」の最初の1行のみを表示したいときは,

    $ head -1 test.csv

とすればOKです.

      row1,row2,row3,row4,row5

同様にCSVファイル「test.csv」の最初の2行のみを表示したいときは,

    $ head -2 test.csv

とすればOKです.

      row1,row2,row3,row4,row5
      1,1,1,1,1

2.「tr」コマンドについて

test.csvの一行目をheadコマンドで出力させると

row1,row2,row3,row4,row5

こんな感じになっているので,縦に並べ替えた方が見やすかったりします.
そんなときに,「tr」コマンドを使っています.

「tr」コマンドは,かんたんに置換をしてくれるコマンドです.

    $ tr 置換したい文字列 置き換えたい文字列

とするみたいです.
この場合は,カンマ「,」を改行文字に置き換えればいいので,
「head」の結果をパイプで渡して,

    $ head -1 test.csv | tr “,” “¥n”

とすればOKです.
結果として,

row1
row2
row3
row4
row5

こんな感じに出てきます.

3.「cat」コマンドについて

catコマンドはファイルの内容を表示してくれるコマンドです.
複数のファイルを連結させたりもできるみたいです.
今回は,「head」でファイルの先頭を表示させ,「tr」で縦に並び替えたので,最後に行番号を追加するために「cat」コマンドを使います.
ちなみに,

    $ cat test.csv

とすると,

row1,row2,row3,row4,row5
1,1,1,1,1

2,2,2,2,2
3,3,3,3,3
4,4,4,4,4
5,5,5,5,5

と出力されます.オプションとして「-n」をつけると行番号も一緒に出力してくれます.

    $ cat -n test.csv

とすると,

    1 row1,row2,row3,row4,row5
    2 1,1,1,1,1

    3 2,2,2,2,2
    4 3,3,3,3,3
    5 4,4,4,4,4
    6 5,5,5,5,5

と出力されるので,先ほどの「tr」で置換した結果を「cat」に渡して,行番号を追加します.

    $ head -1 test.csv | tr “,” “¥n” | cat -n

これで,結果として

1 row1
2 row2
3 row3
4 row4
5 row5

と出力されます.
もっと効率的に目的を達成する方法もあるかもしれないのですが,今のところこれでも十分快適です.

[`twib` not found]

Leave a comment

CAPTCHA


This blog is kept spam free by WP-SpamFree.