Skip to content

Instantly share code, notes, and snippets.

@mkropat
Last active August 29, 2015 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mkropat/1fdde16aafe3b769bd1b to your computer and use it in GitHub Desktop.
Save mkropat/1fdde16aafe3b769bd1b to your computer and use it in GitHub Desktop.
#!/bin/sh
main() {
for f; do
dir=$(dirname -- "$f")
filename=$(basename -- "$f")
case "$filename" in
*.csv) outfilename=${filename%.*}.json ;;
*) outfilename=$filename ;;
esac
awk "$script" "$f" >|"$dir/$outfilename"
done
}
script='
BEGIN {
FS=","
}
{
if (FNR == 1) {
for (i = 0; i <= NF; i++) {
fields[i] = $(i)
}
}
else {
printf "{ "
sep=""
for (i = 1; i <= NF; i++) {
printf sep "\"" fields[i] "\":\"" $(i) "\""
sep=", "
}
print " }"
}
}'
main "$@"
#!/bin/awk -f
BEGIN {
FS=","
}
{
if (FNR == 1) {
for (i = 0; i <= NF; i++) {
fields[i] = $(i)
}
}
else {
printf "{ "
sep=""
for (i = 1; i <= NF; i++) {
printf sep "\"" fields[i] "\":\"" $(i) "\""
sep=", "
}
print " }"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment