[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: