Package Exports
- @lxgicstudios/csvkit-next
- @lxgicstudios/csvkit-next/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@lxgicstudios/csvkit-next) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
csvkit-next
Advanced CSV toolkit. Transform, filter, merge, validate, and analyze CSV files. Zero dependencies.
Installation
npm install -g @lxgicstudios/csvkit-nextOr use directly:
npx @lxgicstudios/csvkit-next stats data.csvCommands
Filter rows
csvkit filter data.csv age gt 30
csvkit filter users.csv email contains @gmail
csvkit filter sales.csv status eq completedOperators: eq, ne, gt, lt, gte, lte, contains, startswith, endswith, regex, empty, notempty
Transform columns
csvkit transform data.csv "full_name=first+' '+last"
csvkit transform prices.csv "total=price*quantity"
csvkit transform users.csv "email_domain=email.split('@')[1]"Merge files
csvkit merge users.csv orders.csv -o combined.csvValidate
csvkit validate data.csv
csvkit validate data.csv schema.jsonSchema format:
{
"required": ["id", "email"],
"types": {
"age": "number",
"email": "email",
"created": "date"
}
}Statistics
csvkit stats sales.csvOutput:
Rows: 1523
Columns: id, product, price, quantity, date
Column Stats:
price:
Type: number
Non-empty: 1523/1523
Min: 9.99, Max: 499.99, Avg: 87.45
Unique: 342Other Commands
csvkit head data.csv 20 # First 20 rows
csvkit tail data.csv 20 # Last 20 rows
csvkit columns data.csv # List columns
csvkit sort data.csv price desc # Sort by price descending
csvkit unique data.csv category # Unique values in column
csvkit sample data.csv 50 # Random 50 rows
csvkit convert data.csv -t json # Convert to JSONProgrammatic Usage
const { parseCSV, filter, transform, stats } = require('@lxgicstudios/csvkit-next');
// Parse CSV
const data = parseCSV(csvString);
// Filter
const adults = filter(data, 'age', 'gte', '18');
// Transform
const withFullName = transform(data, "name=first+' '+last");
// Get stats
const statistics = stats(data);
console.log(statistics.rows, statistics.columns);Why csvkit-next?
- Zero dependencies - Pure JavaScript, nothing to install
- Fast - Streams large files efficiently
- Complete - Filter, transform, merge, validate, analyze
- Scriptable - Works great in pipelines
Built by LXGIC Studios