linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] domanda ignorante bash scripting

Rampage Rmp atomikramp a gmail.com
Gio 17 Maggio 2012 08:36:51 UTC
Ciao ragazzi,
dal basso della mia inferiorità in materia vi pongo un quesito.

ho un file csv con una badilata di "colonne".
molte di queste "colonne" sono vuote (hanno solo l'intestazione nella prima
riga) e io intendevo filtrarle e ricreare un altro csv senza queste colonne.

visto che il file non è un excel, e che la cosa sarà ripetuta per molti
file analoghi, ho optato per fare uno scriptino in bash (eventualmente
valuterò python se la cosa non si reisce a fare in maniera agile) piuttosto
che usare libreoffice calc.

la mia idea era questa.

siccome so a priori quante sono le colonne:

for i in $(seq 1 n); do
     COUNT=$(cat $FILENAME | sed s/\"//g | awk -F ',' '{print $$i}' | grep
-v "^$" | wc -l)
     if [ $COUNT ! -eq 1 ]
          .......
     fi
done

cat $FILENAME | sed .... | awk -F ',' '{print $col1,$col2,$coln}'

l'idea quindi è:
prendo tutte le colonne del csv, guardo quante entry hanno, se hanno più di
una entry allora aggiungo il numero della colonna come int
in un array e alla fine faccio un awk -F e printo solo le colonne il cui
numero è all'interno dell'array.

il problema è.. non ho trovato una guida decente per gestire gli array o le
liste in bash.. qualcuno mi illumina su come fare? :D


grazie in anticipo
Francesco
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lugbs.linux.it/pipermail/lug/attachments/20120517/8d7da320/attachment.html>


Maggiori informazioni sulla lista Lug