opendatasicilia/tansignari

[script] nessuna indicazione utile, come procedere

Closed this issue · 2 comments

Perché non fa nulla, nessun output, nessun messaggio.
Mi aspetterei un elenco di file csv, un esempio di file sotto:

k,v
"01",residenziale
"0101",abitativa
"02",amministrativo
"0201",municipio
"0202",sede provincia
"0203",sede regione
"0204",sede ambasciata o consolato
"0205",sede di città metropolitana
"03",servizio pubblico
"0308",casello forestale

script usato:

<lista_demain.csv | while IFS="" read -r domain;do jq . dbgt10k_fc_domain.json | jq -r '.domains.'"$domain"'.codedValues' | mlr --j2c reshape -r '.' -o k,v >"$domain".csv;done

allego file:

dove:

  • dbgt10k_fc_domain.json : un file json con le info su un FileGDB (risultato di: ogrinfo -json DBGT_10K_22_V01.gdb)
  • lista_demain.csv : è una lista di nomi (risultato di : ogrinfo -json DBGT_10K_22_V01.gdb | jq -r '.domains|keys[]')

È colpa del while, che funziona meglio con questa sintassi, in cui metti il file di input in fondo

while IFS="" read -r domain; do
  jq -r '.domains.'"$domain"'.codedValues' dbgt10k_fc_domain.json |
  mlr --j2c reshape -r '.' -o k,v >"$folder"/data/"$domain".csv
done <lista_demain.csv

Per intero lo farei così

#!/bin/bash

set -x
set -e
set -u
set -o pipefail

folder="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# crea cartella per i dati, se non esiste
mkdir -p "$folder"/data

# rimuovi i file csv, se esistono
find "$folder"/data -type f -name '*.csv' -delete

while IFS="" read -r domain; do
  jq -r '.domains.'"$domain"'.codedValues' dbgt10k_fc_domain.json |
  mlr --j2c reshape -r '.' -o k,v >"$folder"/data/"$domain".csv
done <lista_demain.csv

Perfect!

grazie assai.