Puedes usar awk para esta tarea:
awk -F: '$3 >= 1000' /etc/passwd
Esto dividirá el /etc/passwd archivo por dos puntos, entonces si el campo 3 (ID de usuario) es mayor o igual a 1000, imprimirá el /etc/passwd completo grabar.
Si desea obtener solo el nombre de usuario de esta lista, entonces:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Donde $1 es el primer campo de etc/passwd cuál es el nombre de usuario.
Suponiendo que el sistema reconoce solo a los usuarios locales (es decir, los registrados en /etc/passwd , a diferencia de cualquier autenticado a través de un servicio remoto como LDAP, NIS o Winbind), puede usar grep , sed o awk para extraer los datos de /etc/passwd . awk es el más flexible de ellos, pero ¿qué tal una solución con sed :
sed -n '/^\([^:]\+\):[^:]\+:[1-9][0-9]\{3\}/ { s/:.*//; p }' /etc/passwd
Debe obtener todos los usuarios cuyo gid es mayor o igual a 1000. Usa este comando para eso:
awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd
Si desea usuarios del sistema (gid<1000) será:
awk -F: '($3<1000){print $1}' /etc/passwd