Linux/Unix Shell Scripting - comparar tiempos

 
Vista:
sin imagen de perfil

comparar tiempos

Publicado por ricewind100 (3 intervenciones) el 28/03/2014 16:14:34
buenas
tengo un fichero de tres columnas
(usuarios pid tiempo)
---------------------------------------
usu1 12312 12s
usu2 234123 1h12m03s
usu3 23123 ?
usu4 23124 12m15s
usu5 24566 06s
------------------------------------------
quiero matar los procesos de los usuarios que lleven mas de 15m
por lo que hago lo siguiente
dentro de un while que lee las lineas del fichero
var_tiempo=$(echo "$linea" | cut -d ' ' -f 3)

esto me recupera la 3º columna pero ¿¿como puedo quedarme ahora con los que sean mayor de 15 minutos???


muchas 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 xve
Val: 104
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

comparar tiempos

Publicado por xve (309 intervenciones) el 28/03/2014 20:52:17
Hola, no se de donde sale ese fichero, pero lo unico que se me ocurre, es que generes una función para obtener los minutos analizando el valor...

Lo suyo, seria buscar la manera para que al generar el archivo ya te ponga el tiempo en minutos.

Se genera ese archivo con alguna instrucción de bash?
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
sin imagen de perfil

comparar tiempos

Publicado por ricewind100 (3 intervenciones) el 29/03/2014 20:17:17
eso es lo que me temía , habra que recorrer el camino largo

el archivo se genera asi


/usr/lib/kcml/bkstat -ga | tr -s " " | cut -d ' ' -f 4,10,6 > pru.txt

yo no estoy familiarizado con el bkstat pero me temo que no se puede pedir el tiempo en otro formato

muchas gracias por la respuesta
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
sin imagen de perfil

comparar tiempos

Publicado por ricewind100 (3 intervenciones) el 30/03/2014 14:49:16
No es la solución mas elegante pero funciona

-------------------------
archivo de entrada
-------------------------
nec1 19678 16s
sgil 20189 4m03s
amarrer 2089 24s
pedro 28378237 1h30m04s
kkk 2323 ?
ooo 2323 ?
KWOE 9323808 1h45m09s
jig 24324 80m56s
------------------------------------------
el scrip de momento
-------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1 #!/bin/bash
  2 while read -r linea
  3 do
  4                 echo '---------------------------------'
  5                 echo $linea
  6                 tiempo=$(echo "$linea" | cut -d ' ' -f 3)
  7                 horas=$(echo "$tiempo"| grep -e h)
  8                 minutos=$(echo "$tiempo"| grep -e m)
  9                 segundos=$(echo "$tiempo"| grep -e s)
 10                 echo "horas = $horas"
 11                 echo "minutos= $minutos"
 12                 echo "segundos = $segundos"
 13                 if [[ x$horas == x ]]; then
 14                         if [[ x$minutos == x ]]; then
 15                                 echo "sin minutos"
 16                         else
 17                                 nMin=$(echo "$tiempo" | cut -c 1-2)
 18                                 c2=$(echo "$tiempo" | cut -c 2)
 19                                 if [[ $c2 != 'm' ]]
 20                                 then
 21                                         if [[ $nMin -gt 15 ]]; then
 22                                                 echo "matar $linea"
 23                                         fi
 24                                 fi
 25                         fi
 26                 else
 27                         echo matar $linea
 28                 fi
 29                 echo '---------------------------------'
 30 done < pru.txt

-------------------------------------------------------------------------------------------------------------------
y la salida del programa

---------------------------------
nec1 19678 16s
horas =
minutos=
segundos = 16s
sin minutos
---------------------------------
---------------------------------
sgil 20189 4m03s
horas =
minutos= 4m03s
segundos = 4m03s
---------------------------------
---------------------------------
amarrer 2089 24s
horas =
minutos=
segundos = 24s
sin minutos
---------------------------------
---------------------------------
pedro 28378237 1h30m04s
horas = 1h30m04s
minutos= 1h30m04s
segundos = 1h30m04s
matar pedro 28378237 1h30m04s
---------------------------------
---------------------------------
kkk 2323 ?
horas =
minutos=
segundos =
sin minutos
---------------------------------
---------------------------------
ooo 2323 ?
horas =
minutos=
segundos =
sin minutos
---------------------------------
---------------------------------
KWOE 9323808 1h45m09s
horas = 1h45m09s
minutos= 1h45m09s
segundos = 1h45m09s
matar KWOE 9323808 1h45m09s
---------------------------------
---------------------------------
jig 24324 80m56s
horas =
minutos= 80m56s
segundos = 80m56s
matar jig 24324 80m56s
---------------------------------



almenos ya me lo saque de la cabeza
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 xve
Val: 104
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

comparar tiempos

Publicado por xve (309 intervenciones) el 30/03/2014 20:05:11
Muchas gracias por compartirlo!!!
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