#!/bin/bash

FICHERO="/etc/passwd"

#Hacemos un grep para sacar las lineas que empiezen por "l" y usamos sed para sacar solo esa info
echo "1. Usuarios cuyo nombre empieza con la letra 'l':"
grep "^l" "$FICHERO" | sed -E "s/([a-z]+):.*/\1/"

#Con la opcion -v del grep, hacemos que nos de todo lo que no cumpla esa condición
echo -e "\n2. Usuarios con shell válido:"
grep -vE "(/bin/false|/usr/bin/nologin)$" $FICHERO | sed -E "s/([a-z]+):.*/\1/"

#Buscamos los usuarios que en su línea no salga la palabra "home" y cogemos solo su UID (3ª parte)
echo -e "\n3. UID de los usuarios cuyo directorio home no está en home"
grep -v ":/home/" $FICHERO | sed -E "s/.*:[a-z]*:([0-9]+).*/\1/"

#Buscamos usuarios que tengan el GID mayor que 1000 de esa forma
echo -e "\n4. Usuarios con GID mayor que 1000:"
grep -E "[0-9]+:[1-9]([0-9]){3,}" $FICHERO | sed -E "s/([a-z_]+):.*/\1/"

#[^:] Significa cualquier caracter menos :
echo -e "\n5.Usuarios y su UID con una ',' en su gecos:"
grep -E "^[^:]+:[^:]+:[^:]+:[^:]+:[^:]*,[^:]*:" $FICHERO | sed -E "s/^([^:]+):[^:]+:([^:]+):.*/\1, \2/"