LoginSignup
0
1

More than 3 years have passed since last update.

[Linux便利コマンド] csviewを入れてみる

Last updated at Posted at 2020-09-25

環境

概要

普段仕事にて、csvを扱うことがよくあるのですが
CUIでのcsvビューワーがあるようなので入れてみます

インストール

# ダウンロード
$ curl -OL https://github.com/wfxr/csview/releases/download/v0.3.5/csview-v0.3.5-x86_64-unknown-linux-gnu.tar.gz

# 解凍
$ tar -zxvf csview-v0.3.5-x86_64-unknown-linux-gnu.tar.gz
$ cd csview-v0.3.5-x86_64-unknown-linux-gnu

# パスが通っているところに移動
$ sudo mv csview /usr/local/bin/

簡単ですね。

では実践!

# 実行
$ csview a.csv

すると

Glibcの2.18が見つからないとエラーが発生!!

$ sudo yum update glibc

にてアップデートをしようとしますが、2.17までしか無いよう。

すると、

の記事を参考に手動でglibcを更新できるみたいなのでやってみる。

Glibcの2.18をインストール

$ cd /tmp
$ wget https://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
$ tar -zxvf glibc-2.18.tar.gz
$ cd glibc-2.18
$ mkdir build
$ cd build
$ ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
$ make && make install

$ ldd --version
ldd (GNU libc) 2.18
Copyright (C) 2013 Free Software Foundation, Inc.

これでglibcが2.18になりました。。よかったよかった。

気を取り直して、再度csviewを実践!

文字コードが違う!!

$ csview a.csv
[error] input is not utf8 encoded

またもエラー。
文字コードがutf8じゃないと駄目だと。

csviewのgithubのREADMEに書いてある通りiconvをかませば行けるよう。

$ iconv -f shift-jis -t UTF8//TRANSLIT a.csv| csview
+-------------+----------+----------------+
| コード      | 名称     | 説明           |
+-------------+----------+----------------+
| abc         | 消しゴム | よく消えるよ   |
| ABCDEFGHIJK | えんぴつ | もちやすいよ   |
|             |          | 芯も折れにくい |
+-------------+----------+----------------+

行けた!!!! :clap:

見た目の種類を確認

$ ./csview --help
csview 0.3.5
A high performance csv viewer with cjk/emoji support.

USAGE:
    csview [FLAGS] [OPTIONS] [FILE] [SUBCOMMAND]

FLAGS:
    -h, --help          Prints help information
    -H, --no-headers    Specify that the input has no header row
    -t, --tsv           Use '\t' as delimiter for tsv, overrides '-d' option
    -V, --version       Prints version information

OPTIONS:
        --style <border>           Specify the border style [default: Ascii]  [possible values: None, Ascii, Sharp, Rounded, Reinforced, Markdown, Grid]
    -d, --delimiter <delimiter>    Specify the field delimiter [default: ,]

ARGS:
    <FILE>    File to read

SUBCOMMANDS:
    completion    Generate shell completion file
    help          Prints this message or the help of the given subcommand(s)

とのことで、--styleでいろいろ変えれるみたい。

$ iconv -f shift-jis -t UTF8//TRANSLIT a.csv| csview --style none
 コード       名称      説明 
 abc          消しゴム  よく消えるよ 
 ABCDEFGHIJK  えんぴつ  もちやすいよ 
                        芯も折れにくい 
$ iconv -f shift-jis -t UTF8//TRANSLIT a.csv| csview --style ascii
+-------------+----------+----------------+
| コード      | 名称     | 説明           |
+-------------+----------+----------------+
| abc         | 消しゴム | よく消えるよ   |
| ABCDEFGHIJK | えんぴつ | もちやすいよ   |
|             |          | 芯も折れにくい |
+-------------+----------+----------------+
$ iconv -f shift-jis -t UTF8//TRANSLIT a.csv| csview --style sharp
┌─────────────┬──────────┬────────────────┐
│ コード      │ 名称     │ 説明           │
├─────────────┼──────────┼────────────────┤
│ abc         │ 消しゴム │ よく消えるよ   │
│ ABCDEFGHIJK │ えんぴつ │ もちやすいよ   │
│             │          │ 芯も折れにくい │
└─────────────┴──────────┴────────────────┘
$ iconv -f shift-jis -t UTF8//TRANSLIT a.csv| csview --style rounded
╭─────────────┬──────────┬────────────────╮
│ コード      │ 名称     │ 説明           │
├─────────────┼──────────┼────────────────┤
│ abc         │ 消しゴム │ よく消えるよ   │
│ ABCDEFGHIJK │ えんぴつ │ もちやすいよ   │
│             │          │ 芯も折れにくい │
╰─────────────┴──────────┴────────────────╯
$ iconv -f shift-jis -t UTF8//TRANSLIT a.csv| csview --style reinforced
┏─────────────┬──────────┬────────────────┓
│ コード      │ 名称     │ 説明           │
├─────────────┼──────────┼────────────────┤
│ abc         │ 消しゴム │ よく消えるよ   │
│ ABCDEFGHIJK │ えんぴつ │ もちやすいよ   │
│             │          │ 芯も折れにくい │
┗─────────────┴──────────┴────────────────┛
$ iconv -f shift-jis -t UTF8//TRANSLIT a.csv| csview --style markdown
| コード      | 名称     | 説明           |
|-------------|----------|----------------|
| abc         | 消しゴム | よく消えるよ   |
| ABCDEFGHIJK | えんぴつ | もちやすいよ   |
|             |          | 芯も折れにくい |
$ iconv -f shift-jis -t UTF8//TRANSLIT a.csv| csview --style grid
┌─────────────┬──────────┬────────────────┐
│ コード      │ 名称     │ 説明           │
├─────────────┼──────────┼────────────────┤
│ abc         │ 消しゴム │ よく消えるよ   │
├─────────────┼──────────┼────────────────┤
│ ABCDEFGHIJK │ えんぴつ │ もちやすいよ   │
│             │          │ 芯も折れにくい │
└─────────────┴──────────┴────────────────┘

普段は改行がよくされるようなcsvを扱うことが多いので、個人的にはgridが一番よいですかねー。

エイリアス

毎回iconvの指定をするのはめんどくさいのでエイリアス(function)を用意しておこうと思います

shift-jisへの変換だからcsview + scsviewsにしました。。
ついでに表示のstyleも乗っけておきます

function csviews() {
  command iconv -f shift-jis -t UTF8//TRANSLIT $1 | csview --style grid
}
$ csviews a.csv 
┌─────────────┬──────────┬────────────────┐
│ コード      │ 名称     │ 説明           │
├─────────────┼──────────┼────────────────┤
│ abc         │ 消しゴム │ よく消えるよ   │
├─────────────┼──────────┼────────────────┤
│ ABCDEFGHIJK │ えんぴつ │ もちやすいよ   │
│             │          │ 芯も折れにくい │
└─────────────┴──────────┴────────────────┘

あー便利。

まとめ

大きいものを見るときはしんどそうですが、ちょっとした確認でわざわざソフトで開いたりするのも面倒・・というときには
とても便利そうです。

qiita上では見た目が行間のpaddingが効いてしまってるため線が分かれてるのですが、実際のコンソール上では線はきれいにくっついて引かれているので
ぜひ気になった方は実際に試してみてみてください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1