Closed pigreco closed 1 year ago
Caro @pigreco con ogr 3.7 c'è finalmente l'output in JSON, quindi le info saranno dati e quindi sarà facilissimo ottenere quello che vuoi.
Adesso ogrinfo è un flusso di testo, strutturato, ma un po' scomodo.
A riga di comando si può fare in mille modi. Guardando la struttura penso a uno dei formati di Miller, l'XTAB, che ricorda un po' quell'output. È fatto infatti così (di default non ci sono i :
)
Layer name PROVIN
Geometry None
Feature Count 5
Layer name PROVIN_PROVIN_NOM_T
Geometry None
Feature Count 5
E allora sfrutterei la cosa
# estrai soltanto le righe che servono e le righe bianche
<cucu_dbgt.csv grep -P '^(Layer na.+|Geometry:.+|Feature Count:.+|.{0,1})$' | \
# converti output in CSV
mlr --x2c --ips : clean-whitespace >cucu_dbgt_a.csv
Il comando miller:
--x2c
, per fissare come formato di input l'XTAB e come output il CSV--ips :
, per fissare come separatore di coppie chiave valore, in input, i :
clean-whitespace
, per rimuovere spazi ridondanti.Fammi sapere, che ho fatto di corsa
@aborruso
ottimo!!!
sotto il risultato, grazie mille(r)
@aborruso
volendo catturare anche la riga che inizia con PROJCRS
, ho usato questa:
<ogrinfo_DBGT10kV01.csv grep -P '^(Layer na.+|Geometry:.+|PROJCRS\[.+|^Cature Count:.+|.{0,1})$'
che restituisce questo:
Layer name: DRE_SUP_PLG
Geometry: 3D Measured Multi Polygon
Feature Count: 570
PROJCRS["RDN2008 / UTM zone 32N",
ma non è una riga pulita come le precedenti, quindi occorre un passaggio in più e rimuovere [
e la ,
finale
@pigreco in questo caso la mia modalità non è comodamente applicabile.
E farei qualcosa come:
in questo caso la mia modalità non è comodamente applicabile.
ok, allora chiudo issue ;-)
Ricetta fatta e pubblicata:
https://tansignari.opendatasicilia.it/ricette/bash/estrarre_righe_e_emetterle_in_colonne/
chiudo, grazie
Grande
Ho un file testuale (il file è il risultato del comando
ogrinfo -al -so DBGT_10K_22_V01.gdb
) con migliaia di righe e vorrei estrarre le sole righe che iniziano conLayer name
Feature count
Geometry
e creare un file csv con la seguente struttura:file: cucu_dbgt.csv
io riesco ad estrarre le singole righe usando:
grep "Layer name" nomefile.csv
grep "Feature count" nomefile.csv
grep "Geometry" nomefile.csv
ma non ho idea di come metterle assieme in un csv tramite uno script
PS: il DBGT_10K_22_V01.gdb (pesa oltre 5GB)