Surgiu recentemente a necessidade converter arquivo CSV em JSON.
Para realizar tal atividade, utilize os passo especificados no comentário do código abaixo:
#!/bin/bash # Converter CSV para JSON utilizando o BASH # Como utilizar: # 1- salve o código abaixo como o nome de csv2json # 2- aplique a permissão de execusão ao arquivo: chmod +x ./csv2json # 3- Execute o comando ./csv2json input.csv > output.json input=$1 #validações do arquivo passado [ -z $1 ] && echo "Não foi passado nenhum arquivo CSV " && exit 1 [ ! -e $input ] && echo "Não foi possível localizar o arquivo $1" && exit 1 read first_line < $input a=0 headings=`echo $first_line | awk -F, {'print NF'}` lines=`cat $input | wc -l` while [ $a -lt $headings ] do head_array[$a]=$(echo $first_line | awk -v x=$(($a + 1)) -F"," '{print $x}') a=$(($a+1)) done c=0 echo "{" while [ $c -lt $lines ] do read each_line if [ $c -ne 0 ]; then d=0 echo -n "{" while [ $d -lt $headings ] do each_element=$(echo $each_line | awk -v y=$(($d + 1)) -F"," '{print $y}') if [ $d -ne $(($headings-1)) ]; then echo -n ${head_array[$d]}":"$each_element"," else echo -n ${head_array[$d]}":"$each_element fi d=$(($d+1)) done if [ $c -eq $(($lines-1)) ]; then echo "}" else echo "}," fi fi c=$(($c+1)) done < $input echo "}"