Puoi usare awk per questa attività:
awk -F: '$3 >= 1000' /etc/passwd
Questo dividerà il /etc/passwd file per due punti, quindi se il campo 3 (userid) è maggiore o uguale a 1000, stamperà l'intero /etc/passwd registrare.
Se vuoi ottenere solo il nome utente da questo elenco allora:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Dove $1 è il primo campo di etc/passwd che è il nome utente.
Supponendo che il sistema riconosca solo gli utenti locali (ovvero quelli registrati in /etc/passwd , al contrario di qualsiasi autenticazione tramite un servizio remoto come LDAP, NIS o Winbind), puoi utilizzare grep , sed o awk per estrarre i dati da /etc/passwd . awk è il più flessibile di quelli, ma che ne dici di una soluzione con sed :
sed -n '/^\([^:]\+\):[^:]\+:[1-9][0-9]\{3\}/ { s/:.*//; p }' /etc/passwd
Devi ottenere tutti gli utenti con gid è maggiore o uguale a 1000. Usa questo comando per questo:
awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd
Se vuoi utenti di sistema (gid<1000) sarà:
awk -F: '($3<1000){print $1}' /etc/passwd