Linux/Unix Shell Scripting - Al correr el comando w -l me da la lista de usuarios conectados

 
Vista:

Al correr el comando w -l me da la lista de usuarios conectados

Publicado por Pepe Torres (20 intervenciones) el 25/03/2017 00:19:25
Al correr el commando w -l me da la lista de los usuarios conectados, requiero el apoyo de ustedes para que me de esa lista pero con unos usuarios que quiero excluir, o sea que no quiero que me los muestre al corer el commando. si me pueden apoyar como puedo armar ese commando.

un ejempo seria

corro el commando w -l y trae resultado

root@serverprod # w -l
5:08pm up 32 day(s), 23:54, 109 users, load average: 1.00, 1.75, 2.10
User tty login@ idle JCPU PCPU what
pepe pts 2:21 pm
Arturo pts 4:20 pm
Sandra pts 2:15 pm
juan pts 8:10 am
raul pts 6:10 am
eddy pts 7:20 pm

requiero una instruccion pero que no me muestre a los usuarios

Sandra , Raul

por favor si me pueden orientar para armar un script.

Se los agradeceria.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 66
Plata
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Al correr el comando w -l me da la lista de usuarios conectados

Publicado por kip (17 intervenciones) el 25/03/2017 03:36:39
Hola, he creado un codigo a ver si te sirve:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
 
names=()
 
for ((i = 1; i <= $#; i++))
do
   names+=("\\\y${!i}\\\y");
done
 
names=$(IFS='|' ; echo "${names[*]}");
 
w | awk -v var=$names '{ if (var) { if ($1 !~ var) { print $0 } } else { print $0 } }'

Guardalo con el nombre que desees, por ejemplo filtro.sh y simplemente lo ejecutas de esta forma:

1
./filtro.sh Sandra Raul

Si te fijas les pase los nombres a excluir, puedes pasarle los nombres que desees.

Avisame si es lo que buscas o si te lanzo algun error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Al correr el comando w -l me da la lista de usuarios conectados

Publicado por Pepe Torres (20 intervenciones) el 28/03/2017 19:59:06
Hola ... Gracias por tu respuesta, al corer el codigo que me mandaste me da el siguiente error.

awk: syntax error near line 1
awk: bailing out near line 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 66
Plata
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Al correr el comando w -l me da la lista de usuarios conectados

Publicado por kip (17 intervenciones) el 29/03/2017 02:07:47
Que distribucion de GNU/Linux usas o que SO ?

Intenta modificando la linea siguiente:

1
w | awk -v var="$names" '{ if (var) { if ($1 !~ var) { print $0 } } else { print $0 } }'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Al correr el comando w -l me da la lista de usuarios conectados

Publicado por Pepe Torres (20 intervenciones) el 29/03/2017 15:45:36
Gracias por tu ayuda mira es un un ambiente unix y el SO es SunOS 5.10

y bueno copie la linea que me dijiste y me sigue dando el mismo error.

awk: syntax error near line 1
awk: bailing out near line 1

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 66
Plata
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Al correr el comando w -l me da la lista de usuarios conectados

Publicado por kip (17 intervenciones) el 29/03/2017 15:52:27
En ese caso deberias usar nawk en tu SO, asi:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
 
names=()
 
for ((i = 1; i <= $#; i++))
do
   names+=("\\\y${!i}\\\y");
done
 
names=$(IFS='|' ; echo "${names[*]}");
 
w | nawk -v var=$names '{ if (var) { if ($1 !~ var) { print $0 } } else { print $0 } }'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Al correr el comando w -l me da la lista de usuarios conectados

Publicado por Pepe Torres (20 intervenciones) el 29/03/2017 16:57:27
Gracias, ya ajuste lo que me enviaste. y ya no me da error pero me muestra todos los usuarios, no me los excluye los que le digo sl script.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Al correr el comando w -l me da la lista de usuarios conectados

Publicado por Pepe Torres (20 intervenciones) el 18/05/2017 02:42:38
Por favor KIP me puedes ayudar con este script.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar