Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/05/2015, 09:22
startwav
 
Fecha de Ingreso: junio-2003
Mensajes: 122
Antigüedad: 20 años, 10 meses
Puntos: 0
Pregunta Respuesta: grep y busqueda en cadena

Cita:
Iniciado por AlvaroG Ver Mensaje
A ver si entendí:

Hacer una búsqueda con contexto de un "palabro", luego buscar en el resultado la última palabra de la línea coincidente (no del contexto), y hacer una nueva búsqueda en el mismo archivo, de esa última palabra.

awk hace muy sencillo encontrar la última palabra, simplemente tendrías que usar

awk '{ print $NF }'

tee bifurca su entrada, de tal manera que podés mostrar el texto en la pantalla al mismo tiempo que lo redirigís a un archivo o a otro proceso.

Podés usar variables para guardar el término a buscar, podés usar archivos temporales, o podés complicar el código haciendo algo como
Código BASH:
Ver original
  1. PALABRO=casa
  2. ARCHIVO=mi_fichero.txt
  3. grep -B 1 -A 2 "$PALABRO" "$ARCHIVO" | tee >( TERMINO=$(awk '/'$PALABRO'/ { print $NF }'); grep $TERMINO "$ARCHIVO" )
la salida de grep es redirigida por tee a la salida estándar (pantalla) y además a la subshell, donde se ejecuta awk para obtener la última palabra, se guarda ésta en una variable, y se ejecuta un nuevo grep.

Lo que te salga mejor :)

@AlcaroG muchas gracias!!!
la verdad es que has pillado perfectamente toda la idea, pero seguramente no me he explciado bien en la busqueda que quiero hacer dentro de la busqueda ya lanzada.
LA primera busqueda con grep me busca la palabra "palabro"
La seguda busqueda se debe de realizar sobre las lineas que se devuelvan de la primera busqueda pero no quiero que me tome la útima palabra de cada linea, quiero que me tome únicamente la última palabra de una linea concreta que me va a mostrar y que tiene , siempre, esta estructura:

mi casa tiene una palabro y está en madrid.

La parte fija de esta linea es: "mi casa tiene una palabro y está en"
y la parte que varia y quiero usar para que me busque de nuevo es " madrid"

¿me he explciado bien?

con lo que me has pasado me busca de todas las salidas de lineas la última palabra y en mi ejemplo , quiero la busqueda sobre una linea especifica para su última palabra.

MUCHAS GRACIAS!!!!!!!
__________________
startwav

http://e-hosting.startwave.com/img/banner.gif
Internet Nunca ha estado más cerca de Tí. e-Hosting Start Wave Media . Todo lo que necesitas para tener presencia en Internet.
Servicios de Registro Dominios / DNS / HOSTING / Y MUCHO MÁS...