| 12345678910111213141516171819202122232425 |
- #!/bin/sh
- set -eu
- # If a filename is provided use it, otherwise read from stdin.
- CSV=${1:-/dev/stdin}
- awk -F, '
- NR==1 {
- # Store header names.
- for (i=1; i<=NF; i++) header[i]=$i;
- print "["
- }
- NR>1 {
- printf "%s{", sep;
- for (i=1; i<=NF; i++) {
- printf "%s\"%s\":\"%s\"", (i>1?",":""), header[i], $i;
- }
- printf "}"
- sep = ",\n"
- }
- END {
- print "\n]"
- }
- ' "$CSV"
|