Autor
|
Tema: AWK - ayuda [Solucionado] (Leído 5,279 veces)
|
laucrisman
Desconectado
Mensajes: 4
|
Necesito obtener la Cantidad de procesos por usuario indicando en rojo el que más tiene. Si alguien me puede dar una mano desde ya muchas gracias. Lo que pude hacer es imprimir la cantidad de procesos por usuario pero no se como comparar para saber cual es el que mas tiene for i in $(awk '{print $1}' listado_ps.txt | sort | uniq | grep -v UID); do echo Procesos ejecutados por $i& grep $i listado_ps.txt | wc -l
|
|
« Última modificación: 29 Mayo 2010, 02:20 am por Leo Gutiérrez. »
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
¿Qué comando utilizaste para construir el contenido del archivo de texto?
Es para hacer pruebas.
|
|
|
En línea
|
|
|
|
laucrisman
Desconectado
Mensajes: 4
|
ps aux >listado
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Prueba esto, me funciona bien: #!/usr/bin/bash let mayor=`ps aux | grep -i "^$USERNAME" | wc -l` for usuario in $(ps aux | awk '{print $1}' | sort | uniq); do let procesos=`ps aux | grep -i "^$usuario" | awk '{print $1}' | awk -F "$usuario" '{SUM +=NF - 1} END {print SUM}'` echo -e "Usuario : [${usuario}], procesos ${procesos}"; if [ "$procesos" -gt "$mayor" ] then user="$usuario" let process="$procesos" fi done echo -e "El usuario con más procesos es : ${user}\nProcesos : $process";
Usuario : [108], procesos 1 Usuario : [111], procesos 2 Usuario : [avahi], procesos 2 Usuario : [daemon], procesos 1 Usuario : [dhcp], procesos 1 Usuario : [klog], procesos 1 Usuario : [leo], procesos 61 Usuario : [root], procesos 61 Usuario : [syslog], procesos 1 Usuario : [USER], procesos 1 El usuario con más procesos es : root Procesos : 61
|
|
|
En línea
|
|
|
|
laucrisman
Desconectado
Mensajes: 4
|
Muchas Gracias! funciona perfecto , lo que me faltaría saber es si si hay alguna manera en vez de que me muestre una linea con el usuario con mas procesos que en la lista donde figuran todos los usuarios y procesos el que mas tiene aparezca en otro color Muchas Gracias ubuntu@ubuntu:~/Desktop$ ./pruebaforo.txt Usuario : [102], procesos 1 Usuario : [108], procesos 2 Usuario : [avahi], procesos 2 Usuario : [daemon], procesos 1 Usuario : [root], procesos 80 Usuario : [rtkit], procesos 1 Usuario : [syslog], procesos 1 Usuario : [ubuntu], procesos 56 ( esta linea en ROJO) Usuario : [USER], procesos 1 El usuario con m�s procesos es : ubuntu Procesos : 56
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
#!/usr/bin/bash let mayor=`ps aux | grep -i "^$USERNAME" | wc -l` for usuario in $(ps aux | grep -vi "^root" | awk '{print $1}' | sort | uniq); do let procesos=`ps aux | grep -i "^$usuario" | awk '{print $1}' | awk -F "$usuario" '{SUM +=NF - 1} END {print SUM}'` if [ "$procesos" -gt "$mayor" ] then user="$usuario" let process="$procesos" fi done # Ya tengo el más grande. for usuario in $(ps aux | awk '{print $1}' | sort | uniq); do let procesos=`ps aux | grep -i "^$usuario" | awk '{print $1}' | awk -F "$usuario" '{SUM +=NF - 1} END {print SUM}'` if [ "$usuario" = "$user" ] then echo -e "\033[40m\033[31mUsuario : [${user}], procesos ${procesos} \033[0m"; else echo -e "Usuario : [${usuario}], procesos ${procesos}"; fi done
|
|
|
En línea
|
|
|
|
laucrisman
Desconectado
Mensajes: 4
|
Muchisima gracias Funciona perfecto!!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con DNS (Solucionado)
Redes
|
Splendid
|
3
|
4,240
|
6 Julio 2011, 17:06 pm
por Splendid
|
|
|
[Solucionado] Ayuda con preg_match()
PHP
|
satu
|
5
|
9,718
|
20 Diciembre 2011, 13:41 pm
por peib0l
|
|
|
Ayuda con VB.net (SOLUCIONADO)
.NET (C#, VB.NET, ASP)
|
alexjoffre
|
5
|
3,617
|
13 Enero 2012, 16:55 pm
por alexjoffre
|
|
|
Ayuda C++11 [SOLUCIONADO]
Programación C/C++
|
SARGE553413
|
3
|
2,065
|
12 Noviembre 2013, 09:55 am
por SARGE553413
|
|
|
(Solucionado)Redondear en c++. Ayuda
Programación C/C++
|
theseniorman
|
2
|
2,693
|
4 Junio 2014, 20:13 pm
por theseniorman
|
|