Loading...
Loading...
Use when querying, transforming, or editing structured data (JSON, YAML, TOML, XML, CSV). Prefer these tools over grep/sed/awk on structured formats.
npx skill4agent add netresearch/data-tools-skill data-toolsgrepsedawk| Format | Tool | Notes |
|---|---|---|
| JSON | jq | Or |
| YAML | yq | Same jq-like syntax, in-place editing |
| TOML | dasel | Native TOML support |
| XML | dasel | Or |
| CSV / TSV | qsv | Fast, memory-efficient, purpose-built |
| Mixed / multiple | dasel | Universal selector, auto-detects format |
gh --jqjq -r '.version' package.json
jq '.users[] | select(.role == "admin")' users.json
jq '.version = "2.0.0"' pkg.json > pkg.json.tmp && mv pkg.json.tmp pkg.jsonyq '.services.web.image' docker-compose.yml
yq -i '.jobs.test.strategy.matrix.php-version = ["8.2", "8.3", "8.4"]' .github/workflows/ci.ymldasel -f Cargo.toml '.package.version'
dasel put -f config.json -t string -v "localhost" '.database.host'
dasel -f input.json -w yamlqsv headers data.csv && qsv stats data.csv --everything | qsv table
qsv search -s status "active" users.csv | qsv select name,emailgh api repos/owner/repo/releases --jq '.[0].tag_name'
gh pr list --json number,title --jq '.[] | "\(.number)\t\(.title)"'# BAD: grep/sed on JSON (breaks on formatting, nesting, escapes)
grep '"version"' package.json | sed 's/.*: "\(.*\)".*/\1/'
# GOOD:
jq -r '.version' package.json# BAD: sed on YAML (ignores indentation, multi-line values)
sed -i 's/image: node:.*/image: node:20/' docker-compose.yml
# GOOD:
yq -i '.services.app.image = "node:20"' docker-compose.yml# BAD: awk on CSV (breaks on quoted fields containing commas)
awk -F',' '{print $2}' data.csv
# GOOD:
qsv select 2 data.csv| Cookbook | Content |
|---|---|
| jq Cookbook | Extraction, filtering, transformation, GitHub CLI patterns |
| yq Cookbook | YAML editing, GitHub Actions, Docker-Compose, Kubernetes |
| dasel Cookbook | TOML/XML editing, format conversion, universal selector |
| CSV Processing | qsv workflows, joins, stats, large file handling |