csview:696⭐の高性能CSVターミナルビューア、CJKとEmoji対応
csview:696⭐の高性能CSVターミナルビューア
CSVファイルはデータ交換の標準フォーマットだが、ターミナルで直接確認するのは苦痛だ——catでは表示が崩れ、lessも助けにならず、ExcelやNumbersを開くのは重すぎる。今回紹介するcsviewは、ターミナル専用に設計されたCSVビューア。Rust製、696スター、軽量でありながら高機能だ。
プロジェクト概要
| 属性 | 内容 |
|---|---|
| GitHub | wfxr/csview |
| Stars | 696 |
| 言語 | Rust |
| 特徴 | 高性能、CJK/Emoji対応、テーブル表示、ページング |
| 最終更新 | 1週間前 |
解決する問題
ターミナルでCSVを扱う際の一般的な課題:
- プレーンテキスト表示:列幅が不固定でデータがずれ、目が疲れる
- GUIツールの起動:遅い、メモリ消費が多い、リモートサーバーでは使えない
- 文字コード問題:中国語やEmojiが文字化け、表示位置がずれる
- 大容量ファイル:数十MBのCSVをエディタで開くと固まる
csviewはこれらのシーンに対し、依存関係ゼロで即座に開くソリューションを提供する。
コア機能
📊 インテリジェントなテーブル表示
各列の幅を自動計算し、ターミナル内でデータを整列表示。カスタム区切り文字にも対応し、カンマ区切り以外のファイルも扱える。
# 標準CSVの表示
csview data.csv
# タブ区切りファイルの表示
csview -d '\t' data.tsv
🎨 シンタックスハイライト
ヘッダー、文字列、数値を異なる色で区別し、可読性を向上。複数の配色テーマに対応し、ターミナルのカラー設定と連携可能。
🌏 CJK・Emoji対応
csviewの大きな強み。多くのターミナルツールは東アジア文字の幅計算を誤り、テーブルがずれる問題があるが、csviewはこれを最適化。中国語、日本語、韓国語、Emojiすべて正しく表示される。
⚡ 高性能
Rust製で起動が速く、メモリ消費も少ない。ストリーミング読み込みを採用し、大容量ファイルでも固まらない。実測で100MBのCSVファイルも瞬時に読み込める。
📄 ページング表示
lessのようなページング機能を統合。方向キーでのスクロール、検索、指定行へのジャンプが可能。行数の多いデータファイルの確認に適している。
# ページングモード(デフォルト)
csview large.csv
# stdoutに直接出力
csview --no-pager data.csv
🔧 柔軟な設定
# エンコード指定(自動検出が失敗した場合)
csview -e utf-8 data.csv
# 表示行数制限
csview -n 100 data.csv
# 特殊文字のエスケープ
csview --escape data.csv
クイックスタート
インストール
csviewは複数のインストール方法を提供:
# macOS (Homebrew)
brew install csview
# Arch Linux (AUR)
yay -S csview
# Cargo(Rustパッケージマネージャー)
cargo install csview
# プリコンパイルバイナリ
# GitHub Releasesから対応プラットフォームのバイナリをダウンロード
基本的な使い方
# ファイルを表示
csview sales.csv
# パイプと組み合わせ
cat data.csv | csview
# TSVファイルの表示
csview -d '\t' data.tsv
類似ツール比較
| ツール | Stars | 言語 | 特徴 |
|---|---|---|---|
| xsv | 9.8k | Rust | 機能充実、インデックス・クエリ対応。ただしテーブル表示はcsviewほど美しくない |
| csvkit | 5.9k | Python | ツールセットが豊富だがPython環境が必要で起動が遅い |
| visidata | 6.9k | Python | 対話式スプレッドシート、高機能だが学習コストが高い |
| csview | 696 | Rust | 表示に特化、軽量高速、CJK/Emoji対応が優秀 |
もし主なニーズがCSVファイルの高速閲覧で、複雑なデータ処理ではないなら、csviewが最も軽量な選択だ。xsvはコマンドラインでのクエリやインデックスが必要な場合、visidataは対話的編集が必要な場合に適している。
使用シーン
サーバーログ分析
リモートサーバー上でCSV形式のログを確認し、ローカルにダウンロードする必要なし:
ssh server "cat /var/log/app/exports.csv" | csview
データプレビュー
データサイエンスのワークフローで、中間結果を素早く確認:
python process.py | csview
設定ファイルの確認
CSV形式で保存された設定やデータファイルの確認:
csview -d ',' users.csv
CI/CDパイプライン
自動化フロー内でテストレポートや統計データを確認:
pytest --csv=results.csv && csview results.csv
注意事項
- csviewは読み取り専用ツール。CSVファイルの編集はできない
- ページングモードでは
qで終了、/で検索 - 一部のターミナルではフォント設定が必要な場合がある(テーブル罫線文字の表示)
まとめ
csviewは「ターミナルで快適にCSVを見る」という一つのことに徹した小さなツールだ。visidataのような機能の豊富さも、xsvのようなクエリ能力もない。しかし「このCSVに何が入っているか見たい」という最も一般的なニーズに対し、最も軽量で最速のソリューションを提供する。696スターのニッチプロジェクトだが、ツールボックスに入れておく価値がある。
| 属性 | 内容 |
|---|---|
| リポジトリ | https://github.com/wfxr/csview |
| ライセンス | Apache-2.0 |
| 言語 | Rust |
| 保守者 | @wfxr |