mercoledì 21 novembre 2012

Brevi esercizi #5 Capovolgere un elenco

Salve!

Il quesito di oggi è di facilissima soluzione. Dato un elenco di nomi in ordine alfabetico, dalla lettera a alla lettera n, lo dobbiamo capovolgere in modo che si inizi dalla lettera n e si finisca con la lettera a. Come al solito, prima darò la soluzione più semplice ed immediata, poi quella apparentemente più complicata usando (ovviamente) awk.

Iniziamo dall'elenco(tabella.txt):
Alberto
Barbara
Carlo
Daniela
Emma
Franco
Gino
Luca
Marco
Nino
La soluzione più immediata ci viene offerta dal comando sort. Infatti,

sort -r tabella.txt

Passiamo ad awk. Una piccola premessa. Nello script che segue (es.awk) farò uso degli arrays. Argomento che tratterò nella sua completezza in "Un po' di AWK" il cui indice lo trovate qui. Infatti, terminati i cicli, inizierò proprio con gli arrays. 
#!/usr/bin/awk -f

 BEGIN{
       print "\n\tELENCO INVERTITO\n"
      }
{ riga[NR] = $0 }  
 
 END { i = NR           
        while (i > 0) {
           print "\t" riga[i]
             i = i - 1
        }
        print "\n" 
     }
Alla prossima!

PS. Intanto vi rammento che il caro Juhan si sta dando da fare con Go! Il suo ultimo post, guarda caso, è proprio sugli arrays... :))

Nessun commento:

Posta un commento