Awk para tener a todos mis usuarios habituales en la sombra

8

Tengo un guion

Quiero obtener todos mis usuarios habituales de, por /etc/shadowejemplo, todos los usuarios cuyo segundo término en el archivo sombra comienza con $o !$.

Mi patrón es

sudo getent shadow | awk -F: '$2 ~ /^$/ || /^!$/ {print $1}'

No funciona por ahora.

danaso
fuente
¿Tiene que ser awk? :-)
Rinzwind

Respuestas:

11

Debes escapar del $, ya que es un personaje especial para "Fin de línea" al igual ^que "Principio de línea".

sudo getent shadow | awk -F: '$2 ~ /^\$/ || $2 ~  /^!\$/ {print $1}'
pLumo
fuente
+1 buena captura :)
Rinzwind
Gracias funciona. Sólo necesito para que no incluya usuario root
danaso
1
Simplificado: awk -F: '$2 ~ /^!?\$/ {print $1}'- Esto combina las dos pruebas de coincidencia y dice "coincide con un signo de dólar al comienzo del campo, opcionalmente ( ?) precedido por un !"
pausa hasta nuevo aviso.
4

Todos los usuarios con un conjunto de contraseñas pueden aparecer así:

getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:
Rinzwind
fuente