csview:696⭐の高性能CSVターミナルビューア

CSVファイルはデータ交換の標準フォーマットだが、ターミナルで直接確認するのは苦痛だ——catでは表示が崩れ、lessも助けにならず、ExcelやNumbersを開くのは重すぎる。今回紹介するcsviewは、ターミナル専用に設計されたCSVビューア。Rust製、696スター、軽量でありながら高機能だ。

プロジェクト概要

属性内容
GitHubwfxr/csview
Stars696
言語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言語特徴
xsv9.8kRust機能充実、インデックス・クエリ対応。ただしテーブル表示はcsviewほど美しくない
csvkit5.9kPythonツールセットが豊富だがPython環境が必要で起動が遅い
visidata6.9kPython対話式スプレッドシート、高機能だが学習コストが高い
csview696Rust表示に特化、軽量高速、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