ターミナル上でCSVファイルをいい感じに閲覧できる『tabview』

CSVファイルをターミナル上でいい感じに閲覧できる『tabview』なるツールを見かけたので、ちょっと触ってみることにした。 Python製のツールなので、インストールは以下のコマンドで行える。

pip install tabview

インストール完了後、CSVファイルを指定して以下のようにコマンドを実行することで、Excelなどの表計算ソフトのように矢印キーで移動しながら各セルの値を参照できる。

tabvie...

『csvkit』のin2csvコマンドでLinux上でExcelファイル(xls・xlsx)からcsvに変換してやる

ちょっと調べものをしてたところ、『csvkit』というCSVに関する処理を行えるコマンドツールパッケージを見かけた。 その中にin2csvコマンドなるものがあるのだが、これを使うことでxlsやxlsxといったExcel形式のファイルをcsvフォーマットに変換して出力してくれるようだ。

まず、以下のコマンドで『csvkit』をインストールする。

pip install csvkit

インストールができたら、in2csvを使ってみよう。 普通にExcelファイルを指定すると、標準出力でCSV形式に出力してくれる。


CSVなどをターミナル上で見やすく加工してくれる『tty-table』

CSVなどをターミナル上でテーブルのように加工して見やすく表示してくれる『tty-table』というツールを見かけたので、ちょっと触ってみることにする。 CSVだけではなくJSONにも対応しているようだ。 まず、以下のコマンドでインストールを行う。

sudo apt-get install nodejs # Debian/Ubuntu系の場合
sudo yum install nodejs # RHEL系の場合
npm install tty-table -g


CSVファイルの加工について調べていたところ、Rustで書かれたCSVの集計・加工ツール『xsv』コマンドなるものがあると知ったのでちょっと触ってみた。

1.インストール

まずはインストールから。
インストールの方法は2種類あり、ひとつはコンパイル済みのバイナリをそのまま使う方法、もう一つは自分でコンパイルする方法だ。

バイナリをそのままダウンロードしてくる

バイナリをそのままダウンロードする場合、以下のようにする(念のため、こちらで最新版のURLを確認しておくことをすすめる)。

wget https://github.com/BurntSushi/xsv/rel...

先日、CSV版のjqコマンドを目指しているというコマンド『miller』というものを見かけたので、試しに使ってみることにする。
今回はインストール先としてCentOS 7を用いる。

1.インストール

まずはインストール。
以下のコマンドを実行する。

yum install flex
wget https://github.com/johnkerl/miller/releases/download/v4.1.0/mlr-4.1.0.tar.gz
tar xzvf mlr-4.1.0.tar.gz
cd mlr-4.1.0
./configure
make && make in...

CSVやTSVのデータを扱っていると、大容量になるとcatなんかでは抽出するのは辛くなってくる。
かと言って、grepで行抽出、awkで列指定しての行抽出となると毎回はちょっとつらいし、複数人にそれをやらせるとブーイングが来そうだ。DBにインポートすればよいのだろうが、それも面倒くさい。。。jsonであればjqコマンドを使えば良いのだけど、そうも言ってられないし、わざわざjson形式に切り替えるのも面倒くさい。

そんな時に使えそうなのが、csvファイルに対してSELECT文などを利用できるコマンド「q」コマンドだ。
これならSQL使えれば簡単に扱えるし、DBも必要なさそう。

...
jqコマンドで覚えておきたい使い方17個

ここのところ、仕事でJSONをいじる際にjqコマンドで触る事が多くなったので、使ってて便利だと思った使い方についてをまとめてみることにした。

1.読みやすいよう整形する

jqコマンドをただ通すだけで、整形されてないJSONファイルを読みやすいように整形して出力させることができる。

jq . 対象ファイル

[root@BS-PUB-CENT7-02 ~]# cat /tmp/sample0.json
[{"id":"0001","name":"test001","value":112,"group1":{"subg01":[{"id":"1001","type":"type0...