tableviewはOKAMURA YasunobuさんがGithubに公開されている、自動でcsv区切りを認識し、人間が見やすいよう整形表示してくれるコマンド。
インストール
リリースから各プラットフォームに対応したバイナリをダウンロードする。ここではmac版をダウンロードし、パスの通ったディレクトリに移動した。
https://github.com/informationsea/tableview/releases
mv tableview_darwin_386.dms /usr/local/bin/tableview
> tableview -help
$ tableview -help
tableview [-format FORMAT] [FILE]
-format string
input format (auto/csv/tsv/tdf) (default "auto")
-header
Fix header line
-help
Show help
-license
Show license
-logger string
Log file for debug
-sheet int
Sheet index (Excel only) (default 1)
-version
Show version
Key Binding
j, Ctrl-N, ARROW-DOWN, ENTER
Scroll forward 1 line
k, Ctrl-P, ARROW-UP
Scroll back 1 line
h, ARROW-LEFT
Scroll horizontally left 1 column
l, ARROW-RIGHT
Scroll horizontally right 1 column
f, Ctrl-V, SPACE, PageDown
Scroll forward 1 window
[
Scroll horizontally left 1 character
]
Scroll horizontally right 1 character
g, Home, <
Go to first line
G, End, >
Go to last line
/pattern
Search forward in the file
n
Repeat previous search
N
Repeat previous search, but in the reverse direction
?
Show this help
L
Show license
ラン
csvファイルをコマンドライン環境で表示すると、区切り自体が文字なので、とても見にくくなる。
一応excelなどの表計算ソフトに読み込めば表示できるが、中身を確認するだけなら無駄が多い。
open -a excel test1.csv #-aでアプリ指定
やはりコマンドライン環境で完結する方がスムーズに進む。 columnコマンドを使えば、","をセパレータと認識して整形表示できる。
column -t -s, test1.csv |less
Header 1 Header 2 Header 3
1 2 3
12 23 34
123 234 345
1234 2345 3456
12345 23456 34567
123456 234567 345678
1234567 2345678 3456789
hogehoge foo bar
1 2 3
12 23 34
123 234 345
1234 2345 3456
12345 23456 34567
123456 234567 345678
1234567 2345678 3456789
hogehoge foo bar
1 2 3
12 23 34
123 234 345
これで実用上問題ないが、列が増えてくると視認性が悪くなる。また、列が画面に収まりきらないほど増えてくると、見かけ上の改行が入ってごちゃごちゃになってしまう。 その他、オプションを忘れると調べ直さないといけないので、手が止まる。
tableviewはおそらくこのあたりの問題の解決を目指して作成されている。testデータを開いてみる。
tableview test1.csv
Header 1 | Header 2 | Header 3
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1234 | 2345 | 3456
12345 | 23456 | 34567
123456 | 234567 | 345678
1234567 | 2345678 | 3456789
hogehoge | foo | bar
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1234 | 2345 | 3456
12345 | 23456 | 34567
123456 | 234567 | 345678
1234567 | 2345678 | 3456789
hogehoge | foo | bar
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1 | 2 | 3
12 | 23 | 34
(line: 1/72+ column: 1/3)
縦線 " | " で区切りが入り、見やすくなっている(拡張子によるフォーマット認識はdefaultではauto)。十字キーで1行単位スクロール、スペース(下方向)とb(上方向)でページ単位スクロールができる。また、列が多くて画面からはみ出す場合、十字キーの← →で横方向スクロールもできるようになっている。これだけのことで、視認性がかなり改善する。
エスケープキーで終了する。
-header をつけると、ヘッダー行だけ固定して縦方向スクロールができる。
tableview -header test1.csv
Header 1 | Header 2 | Header 3
12 | 23 | 34
123 | 234 | 345
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1 | 2 | 3
12 | 23 | 34
スクロールしてもヘッダー行が残っている。
/patternでキーワード検索できる。
"/"を押してから"12345"とタイプ。キーワード12345が検索される。
12345 | 23456 | 34567
123456 | 234567 | 345678
1234567 | 2345678 | 3456789
hogehoge | foo | bar
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1234 | 2345 | 3456
12345 | 23456 | 34567
123456 | 234567 | 345678
1234567 | 2345678 | 3456789
hogehoge | foo | bar
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1 | 2 | 3
12 | 23 | 34
123 | 234 | 345
1 | 2 | 3
(line: 6/72 column: 1/3 Search:12345 Found:1/6)
CSVの編集やstatisticsを確認したければ、Csvkitはどうでしょうか?坊農さん(HPリンク)にツイート経由で教えていただきました。
引用
GitHub - informationsea/tableview: Format CSV file as human readable table