miglio.vale
20-11-2010, 11:51
Salve, ho un problema con awk. Mi spiego meglio, devo scrivere uno script che trovi e stampi a video tutti gli utenti registrati nel sistema che abbiano "false" come shell. A video la lista deve essere mostrata come <username> <uid> in ordine numerico crescente rispetto a <uid>.
Quel che ho fatto io è:
#!/bin/sh
FILE=/etc/passwd
echo $(sed -n '/false/p' $FILE | awk 'BEGIN{FS=":"}{print $3, $1}' | sort | awk '{print $2, $1}')
exit 0
ma il risultato me lo stampa a video senza che awk vada a capo tra i vari record, inoltre ho dovuto mettere il secondo awk perché, se a sort davo l'opzione -n(ordinamento numerico), sort non mi ordinava rispetto al uid.
Se qualcuno mi potesse spiegare esattamente dove ho sbagliato, gliene sarei grata
Quel che ho fatto io è:
#!/bin/sh
FILE=/etc/passwd
echo $(sed -n '/false/p' $FILE | awk 'BEGIN{FS=":"}{print $3, $1}' | sort | awk '{print $2, $1}')
exit 0
ma il risultato me lo stampa a video senza che awk vada a capo tra i vari record, inoltre ho dovuto mettere il secondo awk perché, se a sort davo l'opzione -n(ordinamento numerico), sort non mi ordinava rispetto al uid.
Se qualcuno mi potesse spiegare esattamente dove ho sbagliato, gliene sarei grata