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 10:36:11 UTC
credo di aver risolto

Francesco

2012/5/17 Rampage Rmp <atomikramp a gmail.com>

> Grazie Gelma, in realtà è quasi tutto fatto, mi manca solo un passaggio
> logico che la mia mente sciocca non riesce a risolvere, ma che sicuramente
> è una banalità
>
> dato un array di interi, che può ovviamente variare in lunghezza oltre che
> per valori, a fare l'equivalente di un
>
> cat filename | awk -F ';' '{print $1,$2,$3,$4}'
>
> dove 1 2 3 e 4 sono gli int dell'array?
>
> panico :D
>
> Francesco
>
> 2012/5/17 Andrea Gelmini <andrea.gelmini a linux.it>
>
>> Il 17 maggio 2012 10:36, Rampage Rmp <atomikramp a gmail.com> ha scritto:
>> > 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.
>>
>> In bash puro ti complichi un po' la vita. Puoi risolverlo dritto da
>> AWK (che gia' ti offre tutto il necessario).
>> In Python dovrebbe essere ancora piu' agile (perché ha un modulo
>> dedicato).
>> Non lo ho provato, ma io scriverei una cosa di questo tipo:
>>
>> -----------------------------------
>> #!/usr/bin/python3
>>
>> import csv
>>
>> nuovocsv = csv.writer(open('/tmp/nuovo_file.csv', 'w', newline=''),
>> delimiter=';', quoting=csv.QUOTE_ALL)
>>
>> with open('file_origine.csv', 'r') as fd:
>>        reader = csv.reader(fd, delimiter=';', quoting=csv.QUOTE_ALL)
>>        for riga in reader:
>>                nuovi_campi=[campo for campo in riga if campo is not None]
>>                nuovocsv.writerow(nuovi_campi)
>> ------------------------------------
>>
>> > il problema è.. non ho trovato una guida decente per gestire gli array
>> o le
>> > liste in bash.. qualcuno mi illumina su come fare? :D
>>
>> E' nella documentazione ufficiale. Guarda bene. E' lo stesso
>> meccanismo per il quale passi gli argomenti agli script o alle
>> funzioni.
>> n.b.: ma scusa, una banale regexp che faccia il match di una sequenza
>> tipo ,"", e la collassi con una virgola e basta?
>>
>> Ciao,
>> Gelma
>>
>> --
>> Info/Lamentele/Segnalazioni: andrea.gelmini a gmail.com
>>
>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lugbs.linux.it/pipermail/lug/attachments/20120517/7cb7c235/attachment-0001.html>


Maggiori informazioni sulla lista Lug