Re: Ayuda con un script y grep
> ps -ef | grep 'sshd' | awk '{print $1}'
>
> Y si por ejemplo hay 2 usuarios logueados en el sistema (usuario1 y usuario2),
> un "ps -ef | grep 'sshd'" saca lo siguiente:
>
> root 1132 1 0 Jan13 ? 00:00:00 /usr/sbin/sshd
> root 1200 1132 0 Jan13 ? 00:00:00 sshd: usuario1 [priv]
> usuario1 1219 1200 0 Jan13 ? 00:00:00 sshd: usuario1@pts/59
> root 1608 1132 0 00:01 ? 00:00:00 sshd: usuario2 [priv]
> usuario2 1619 1608 0 00:01 ? 00:00:00 sshd: usuario2@pts/61
> usuario0 1643 1113 0 00:01 pts/57 00:00:00 grep sshd
>
> y entonces, "ps -ef | grep 'sshd' | awk '{print $1}'" me da esto:
>
> root
> root
> usuario1
> root
> usuario2
> usuario0
>
> Pero yo sólo quiero que me salgan usuario1 y usuario2, es decir, los que
> tienen una @ detrás (son los únicos que han accedido por SSH). El truco
> parece que estar en coger sólo los que tengan la @, pero no sé cómo.
>
> Soy un poco principiante en estos scripts, aunque prometo adentrarme mucho más
> en ellos. ¿Alguna ayuda para corregir el código?
>
> Muchas gracias.
Buenas!
Creo que tu mismo sabes la solucion: no te valdría:
ps -ef | grep 'sshd' |grep @| awk '{print $1}'
Claro que no es perfecto, para hacerlo bien necesitas el uso de expresiones
regulares, para estas cosas perl es perfecto pero con awk supongo que tambien
se puede hacer.
Chao!
Reply to: