Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/05/2015, 08:50
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: grep y busqueda en cadena

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 :)