[Gulli] C-onoscete il C?

lorenzo vangi lorenzovangi@gmail.com
Mer 12 Giu 2013 23:37:28 CEST


Molto pių facile con awk, perfetto per la gestione delle stringhe

Il giorno mercoledė 12 giugno 2013, Sandro Fabbro ha scritto:

> questa č una bozza scritta velocemente in bash manca la parte che ti
> compone il secondo caso se riesco faccio ... se qualche buona anima vuole
> scrivere il secondo ciclo ben venga ;-)
>
> #!/bin/bash
>
> FILE=$1
> count=0
>
> while read LINE ; do
>
> code=`echo $LINE | cut -d';' -f1`
> country=`echo $LINE | cut -d';' -f2`
> provider=`echo $LINE | cut -d';' -f3`
> base=`echo $LINE | cut -d';' -f4`
> ccomma="${LINE//[^,]}"
>
> if [ "${#ccomma}" -eq 0 ]; then
>
>         app=`echo $LINE | cut -d';' -f5`
>         echo "$code;$country;$provider;$base$app"
> else
>
> echo "da prendere la base + la parte indentificata come 4+i usando ccomma
> come riferimento che parte da 0"
>
> fi
> done < $FILE
>
>
>
> Il giorno 12 giugno 2013 23:00, Daniele Forsi <dforsi@gmail.com<javascript:_e({}, 'cvml', 'dforsi@gmail.com');>
> > ha scritto:
>
>> Il 12 giugno 2013 15:43, Alessandro Marzini ha scritto:
>>
>> > devo scrivere un piccolo programma che mi prenda un file di testo cosi
>> > fatto:
>>
>> > 2;AFGHANISTAN;Other;93;
>>
>> > e devo riorganizzarlo cosi:
>>
>> > 2;AFGHANISTAN;Other;93;
>>
>> č giusta? questa č l'unica riga riorganizzata che finisce con un punto e
>> virgola
>>
>> > Il mio problema č che se uso la fscanf, l'ultimo ciclo mi prende anche
>> il
>> > valore della riga successiva, cioe' non riesco a dire alla fscanf di
>> > fermarsi quando arriva a fine riga.
>>
>> fscanf ignora un sacco di cose tra cui i caratteri di fine riga e non
>> gestisce volentieri i campi vuoti come quella riga che ho citato sopra
>> che finisce con punto e virgola, da cui il consiglio di Fabrizio di
>> usare fgets+sscanf (ma comunque avresti il problema degli spazi
>> all'interno delle parole, insomma scanf() e  famiglia sono poco utili
>> al di fuori dei libri di scuola)
>>
>> > Estratto del codice:
>> >
>> > http://codepad.org/YaolFNjB
>>
>> guarda se questo ti č utile
>> http://codepad.org/iQAy1mQ8
>> non spezza le righe come nel tuo codice, ma le righe di esempio
>> vengono trasformate cosė:
>> 111792;AFGHANISTAN;Areeba Mobile;9377
>> 125426;AFGHANISTAN;AT Mobile;9375
>> 125426;AFGHANISTAN;AT Mobile;9378
>> 125426;AFGHANISTAN;AT Mobile;9389
>> 124225;AFGHANISTAN;AWCC Mobile;9370
>> 123768;AFGHANISTAN;Etisalat Mobile;9378
>> 2;AFGHANISTAN;Other;93
>> 111793;AFGHANISTAN;Roshan Mobile;9372
>> 111793;AFGHANISTAN;Roshan Mobile;9379
>> 129491;ALBANIA;OLO;3554249
>> 129491;ALBANIA;OLO;3554250
>> 129491;ALBANIA;OLO;3554251
>> 129491;ALBANIA;OLO;3554252
>>
>> --
>> Daniele Forsi
>> --
>> Mailing list info: http://lists.linux.it/listinfo/gulli
>> Pagina web del GULLI: www.livorno.linux.it
>>
>
>
>
> --
> Sandro Fabbro
>
> Email: sandrofabbro@gmail.com <javascript:_e({}, 'cvml',
> 'sandrofabbro@gmail.com');>
>


-- 
Lorenzo Vangi
-------------- parte successiva --------------
Un allegato HTML č stato rimosso...
URL: <http://lists.linux.it/pipermail/gulli/attachments/20130612/28d83ef0/attachment.html>


Maggiori informazioni sulla lista Gulli