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 |
とすると,
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 |
と出力されます.
もっと効率的に目的を達成する方法もあるかもしれないのですが,今のところこれでも十分快適です.
Leave a comment