TL;DR — Quick Summary

xsv is a fast CSV toolkit. Search, slice, join, sort, stats, frequency — all from the command line. Like pandas for your terminal, powered by Rust.

xsv makes CSV powerful. Search, slice, join, stats — all from your terminal, fast enough for gigabyte files.

Installation

# macOS
brew install xsv

# Arch Linux
sudo pacman -S xsv

# Cargo
cargo install xsv

Usage

# Preview
xsv headers data.csv             # Column names
xsv count data.csv               # Row count
xsv table data.csv | head        # Pretty-printed table

# Select columns
xsv select name,email data.csv
xsv select 1,3,5 data.csv       # By index
xsv select '!password' data.csv  # Exclude column

# Search
xsv search 'error' data.csv
xsv search -s status 'active' data.csv  # In specific column

# Sort
xsv sort -s revenue data.csv     # Sort by column
xsv sort -s date -R data.csv     # Reverse sort

# Statistics
xsv stats data.csv               # Min, max, mean, stddev
xsv frequency -s category data.csv  # Value counts

# Join
xsv join id users.csv user_id orders.csv

# Sample and split
xsv sample 100 data.csv          # Random 100 rows
xsv split -s 1000 output/ data.csv  # Split into chunks

# Index (speeds up operations)
xsv index data.csv

# Filter
xsv search -s age '^[3-4]' data.csv  # Regex filter

# Pipeline
xsv select name,revenue data.csv | xsv sort -s revenue -R | head -20

Summary

  • xsv is a fast CSV toolkit: search, select, sort, join, stats, frequency
  • Handles multi-GB files via streaming — no memory limits
  • Index files for instant column access and random sampling
  • Pipeline commands together for complex data workflows
  • Written in Rust — single binary, no dependencies