L'esercizio di oggi consiste nel "mettere ordine" nel file di configurazione /etc/passwd. Mettere ordine nel senso di formattazione dei dati, eh!
Ed awk, in questo, cioè nel fare ordine, è leader mondiale.
Magari si può fare di meglio. Di questo ne sono sicuro.
Intanto vi dico come ho fatto io.
cat /etc/passwd
Il casino infernale....
Lo scritp: ordina.awk
#!/usr/bin/awk -f
BEGIN{
FS=":"
print "------------------------------------------------------------------"
printf "%-14s %-7s %-7s %-15s %-30s\n", "User","UID", "GID", "Home Dir.", "Shell"
print "------------------------------------------------------------------"
}
NR==1, NR==10 {printf "%-14s %-7d %-7d %-15s %-30s\n", $1, $3, $4, $6, $7}
END{
print ""
print "------------------------------------------------------------------"
print ""
}
Come si può evincere dallo script, NR==1, NR==10, verranno stampate solo le prime 10 righe.
Il risultato
Alla prossima!
P.S.1 Per chi volesse approfondire il comando passwd e il file di configurazione /etc/passwd, qui.
P.S.2 Indice Brevi Esercizi
#!/usr/bin/awk -f
RispondiElimina#filtro per estrarre e stampare da /etc/passwd un array di dizionari in json di UID,GID,user,shel
#ciascuna riga in out conterra un dizionario, esclusa la prima e ultima che conterranno rispettivament [ e ]
BEGIN{
FS=":"
print "["
}
NR==1, NR==10 {printf "%s{\"UID\":%d\t,\"GID\":%d\t,\"User\":\"%s\"\t,\"directory\":\"%s\"\t,\"shell\":\"%s\"}\n" ,NR==1?"":"," ,$3, $4, $1, $6, $7 }
END{
print "]"
}
#!/usr/bin/awk -f
RispondiElimina#filtro per estrarre e stampare da /etc/passwd un array di array in json di UID,GID,user,shel
#ciascuna riga in out conterra un array, esclusa la prima e ultima che conterranno rispettivament [ e ]
#gli array di array sono il doppio piu compatti
BEGIN{
FS=":"
print "["
}
NR==1, NR==1000 {printf "%s[%d,%d,\"%s\",\"%s\",\"%s\"]\n" ,NR==1?"":"," ,$3, $4, $1, $6, $7 }
END{
print "]"
}
Grazie per il tuo contributo!
Elimina