Foros del Web » Administración de Sistemas » Unix / Linux »

[SOLUCIONADO] Encontrar lineas con numero mayor que "con decimales"

Estas en el tema de Encontrar lineas con numero mayor que "con decimales" en el foro de Unix / Linux en Foros del Web. Uumm Estoy tratando una tabla de excel y me gustaría sacar las lineas que contienen un numero mayor que 1,96 (por ejemplo) con grep. El ...
  #1 (permalink)  
Antiguo 19/03/2013, 12:55
 
Fecha de Ingreso: marzo-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Encontrar lineas con numero mayor que "con decimales"

Uumm

Estoy tratando una tabla de excel y me gustaría sacar las lineas que contienen un numero mayor que 1,96 (por ejemplo) con grep.

El problema está que solo consigo hacerlo para un número entero y no acabo de acertar para busquedas con números decimales.

Alguien me puede echar una manita
  #2 (permalink)  
Antiguo 20/03/2013, 08:26
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Encontrar lineas con numero mayor que "con decimales"

Tené en cuenta que si es excel, es posible que el formato sea binario y no logres obtener los valores simplemente con grep.

En primer lugar necesitás saber cómo se guardan los valores en el archivo, en particular si los decimales se guardan como "1,96" o como "1.96", esto es indiferente de cómo se muestren en el programa.

Si es 1.96, con grep deberías buscar cadenas como

[0-9]+\.[0-9]+

el punto debe ir escapado con la barra delante, porque es un metacaracter.

Si es 1,96, es la misma expresión de arriba, pero cambiando "\." por ",", ya que la coma no necesita escaparse.

Para ver la comparación entre decimales en shell, te remito a este otro tema reciente: http://www.forosdelweb.com/f41/compa...teros-1042539/


Saludos.
  #3 (permalink)  
Antiguo 20/03/2013, 12:03
 
Fecha de Ingreso: marzo-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Encontrar lineas con numero mayor que "con decimales"

Gracias Alvaro, me has puesto sobre la pista ^^

La expresión que he utilizado es compleja.

egrep -n [1-9]+,[9]+[6-9]+ -e [2-9]+,[0-9]+ arch

Con la primera regular listo todos los incluidos en el rango 1,96 - 1,99 y con la segunda 2,0 en adelante ya que la primera por si sola no mostraria por ejemplo 2,21.

Esto a su vez provoca algun resultado duplicado 2,99 por ejemplo pero como se que solo tengo un valor posible por linea(es asin el excel ^^) con el -n se si una linea me sale 2 veces.

Gracias ^^

saludetes !!
  #4 (permalink)  
Antiguo 20/03/2013, 12:14
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Encontrar lineas con numero mayor que "con decimales"

Yo no utilizaría expresiones regulares para comprobar los valores. Tu expresión no vale para "2,21", pero sí para "289023424786525341,999999999999967887687687699999 " (por poner un ejemplo absurdo que te muestre el problema)

Al menos refínala:

egrep -e 1,[6-9][0-9]+ -e [2-9]+,[0-9]+

Esta última acepta menos valores, pero aún acepta "1,60", no hay forma de limitarlo más porque las expresiones regulares no son la herramienta correcta en este caso, solamente deberías usarlas para encontrar los valores, y luego procesarlos de otra manera.
  #5 (permalink)  
Antiguo 20/03/2013, 12:25
 
Fecha de Ingreso: marzo-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Encontrar lineas con numero mayor que "con decimales"

Si es mas correcta la tuya limitando la primera a valores inf a 2 ^^.

Solo tiene utilidad didactica.

Gracias otra vez ^^

Etiquetas: encontrar, lineas, mayor, numero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:36.