[Ayuda] Quedarte con una línea tras hacer grep

Buenas a todos,
tengo un problemilla con un script; es simple, necesito quedarme con la línea de un fichero número N que contenga una determinada cadena en ella.
Si hago grep, me devuelve TODAS las líneas que lo cumplan, y simplemente quiero que me devuelva la tercera (por poner un ejemplo) que cumpla eso.

A ver si alguien sabe cómo hacerlo, llevo una hora tonta buscando una solución y nada.

Un saludo!
(supongo bash)

cat ARCHIVO | grep -m A 'CADENA' |tac | grep -m 1 'CADENA'


esto hace lo que quieres, aunque no lo veo elegante xD


cat, te muestra el archivo entero linea a linea

grep te flitra la cadena que quieres, con -m te saca justo hasta la posicion que quieres, si quieres la tercera linea que contiene la cadena, usa A=3

tac invierte el orden, con lo que la ultima linea (que es la que queremos), pasa a ser la primera

volvemos a grep, esta vez con -m 1 para que solo muestre la primera linea que saca tac, que es la que queremos. et voilà ;)
xDD
tail - output the last part of files

asi es un poco mas elegante :P

supongo que grep | tail -n 1 (-n = numero de lineas) te servira :D
Gracias jorchube.
Elegante del todo no es, pero seguro que funciona; si alguien no tiene una propuesta mejor, tiraré de esta solución XD .

Saludos

EDITO: Vale, parece que ya hay una solución mejor, jaja. Gracias a los dos!
FFFFFFFUUUUUUUUUUU~~~~~~~~~~!!!!

mira que no caer en tail xD
4 respuestas