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 "}" |