
Csv
- 196 installs
- 604 repo stars
- Updated July 15, 2026
- vercel-labs/bash-tool
Analyze and transform CSV data using bash tools.
About
Analyze and transform CSV data using bash tools. Process CSV files using standard bash tools (awk, cut, sort, grep). The csv skill documents workflows, constraints, and examples from SKILL.md for agent-assisted execution.
- Process CSV files using standard bash tools (awk, cut, sort, grep).
- Get statistics and summary of a CSV file.
- bash /skills/csv/scripts/analyze.sh data.csv
- Filter rows where a column matches a value.
- bash /skills/csv/scripts/filter.sh data.csv <column_number> <value>
Csv by the numbers
- 196 all-time installs (skills.sh)
- +4 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #525 of 1,901 Documentation skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 27, 2026 (Skillselion catalog sync)
csv capabilities & compatibility
- Capabilities
- process csv files using standard bash tools (awk · get statistics and summary of a csv file. · bash /skills/csv/scripts/analyze.sh data.csv · filter rows where a column matches a value.
- Use cases
- documentation
What csv says it does
Analyze and transform CSV data using bash tools
npx skills add https://github.com/vercel-labs/bash-tool --skill csvAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 196 |
|---|---|
| repo stars | ★ 604 |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 15, 2026 |
| Repository | vercel-labs/bash-tool ↗ |
How do I apply csv using the workflow in its SKILL.md?
Analyze and transform CSV data using bash tools
Who is it for?
Developers following the csv skill for the tasks it documents.
Skip if: Tasks outside the csv scope described in SKILL.md.
When should I use this skill?
User mentions csv or related triggers from the skill description.
What you get
Working csv setup aligned with the documented patterns and constraints.
Files
CSV Processing Skill
Process CSV files using standard bash tools (awk, cut, sort, grep).
Available Scripts
analyze.sh
Get statistics and summary of a CSV file.
bash /skills/csv/scripts/analyze.sh data.csvfilter.sh
Filter rows where a column matches a value.
bash /skills/csv/scripts/filter.sh data.csv <column_number> <value>select.sh
Select specific columns from CSV.
bash /skills/csv/scripts/select.sh data.csv <col1,col2,col3>sort.sh
Sort CSV by a column.
bash /skills/csv/scripts/sort.sh data.csv <column_number> [--numeric] [--reverse]Examples
# Show CSV summary
bash /skills/csv/scripts/analyze.sh sales.csv
# Filter where column 3 equals "active"
bash /skills/csv/scripts/filter.sh users.csv 3 active
# Select columns 1, 2, and 4
bash /skills/csv/scripts/select.sh data.csv 1,2,4
# Sort by column 2 numerically in reverse
bash /skills/csv/scripts/sort.sh data.csv 2 --numeric --reverse#!/bin/bash
# Analyze a CSV file - show structure and statistics
if [ -z "$1" ]; then
echo "Usage: analyze.sh <csv_file>" >&2
exit 1
fi
FILE="$1"
if [ ! -f "$FILE" ]; then
echo "Error: File not found: $FILE" >&2
exit 1
fi
echo "=== CSV Analysis: $FILE ==="
echo ""
# Row count
TOTAL_ROWS=$(wc -l < "$FILE" | tr -d ' ')
echo "Total rows: $TOTAL_ROWS"
# Column count (from header)
HEADER=$(head -1 "$FILE")
COL_COUNT=$(echo "$HEADER" | awk -F',' '{print NF}')
echo "Columns: $COL_COUNT"
echo ""
echo "=== Header ==="
echo "$HEADER"
echo ""
echo "=== Column Names ==="
echo "$HEADER" | tr ',' '\n' | nl
echo ""
echo "=== First 5 Data Rows ==="
head -6 "$FILE" | tail -5
echo ""
echo "=== Last 3 Data Rows ==="
tail -3 "$FILE"
#!/bin/bash
# Filter CSV rows where a column matches a value
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then
echo "Usage: filter.sh <csv_file> <column_number> <value>" >&2
echo "Example: filter.sh data.csv 3 active" >&2
exit 1
fi
FILE="$1"
COL="$2"
VALUE="$3"
if [ ! -f "$FILE" ]; then
echo "Error: File not found: $FILE" >&2
exit 1
fi
# Print header
head -1 "$FILE"
# Filter rows where column matches value
tail -n +2 "$FILE" | awk -F',' -v col="$COL" -v val="$VALUE" '$col == val'
#!/bin/bash
# Select specific columns from a CSV
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Usage: select.sh <csv_file> <columns>" >&2
echo "Example: select.sh data.csv 1,3,5" >&2
exit 1
fi
FILE="$1"
COLS="$2"
if [ ! -f "$FILE" ]; then
echo "Error: File not found: $FILE" >&2
exit 1
fi
cut -d',' -f"$COLS" "$FILE"
#!/bin/bash
# Sort CSV by a column
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Usage: sort.sh <csv_file> <column_number> [--numeric] [--reverse]" >&2
echo "Example: sort.sh data.csv 2 --numeric --reverse" >&2
exit 1
fi
FILE="$1"
COL="$2"
shift 2
SORT_OPTS="-t, -k${COL},${COL}"
# Parse options
while [ $# -gt 0 ]; do
case "$1" in
--numeric|-n)
SORT_OPTS="$SORT_OPTS -n"
;;
--reverse|-r)
SORT_OPTS="$SORT_OPTS -r"
;;
esac
shift
done
if [ ! -f "$FILE" ]; then
echo "Error: File not found: $FILE" >&2
exit 1
fi
# Print header first, then sort the rest
head -1 "$FILE"
tail -n +2 "$FILE" | sort $SORT_OPTS
Related skills
FAQ
What does csv do?
Analyze and transform CSV data using bash tools
When should I use csv?
Invoke when Analyze and transform CSV data using bash tools.
Is csv safe to install?
Review the Security Audits panel on this page before installing in production.