Orden grep , ¿ Como consigo que me diga a que fichero pertenece lo que busco ?

Seguro que es una tonteria pero no se como hacerlo , resulta que tengo una carpeta con muchos ficheros txt y quiero ver el contenido de uno en concreto pero no se como se llama , y mirar 1 por 1 solo para ver un parrafo es demasiado pesado , solo me se algunas frases asi que decido buscarlo con grep con esta orden:

cat *.txt | grep "frase"

y me sale la frase pero no me sale el nombre del fichero al que pertenece.

¿ Cual es la forma para que te diga a que fichero pertenece el texto que yo este buscando ?

¿ O hay alguna otra forma para poder dada una cadena de texto encontrar el archivo al que pertenece ?

Como digo seguro que la solucion es bastante sencilla , pero no doy con ella.

Gracias.
a estas horas lo unico que se me ocurre es:

for i in *.txt #Para todos los ficheros
do
  if VAR=$(cat $i | grep "frase")  #Si encuentra algo
  then
    echo "$VAR encontrada en $i" #Imprime frase con patron y fichero
  fi
done


Seria algo asi, mira que no haya ningun fallo de sitaxis, porque no estoy hoy muy catolico :o :p

Saludos
A eso le llamo yo rapidez [flipa] , esta todo perfecto [oki] , tendre que estudiar algo de bash para estos imprevistos :-| .

Gracias de nuevo.
Yo lo haría un poquito más fácil:

grep texto *.txt



Saludos.
Yo lo haría un poquito más fácil:

grep texto *.txt


Perfecto , ya decia yo que para una cosa tan sencilla , tendria que tener una solucion sencilla.

Gracias.
Joe, yo lo hacía como Anjel y tenía el mismo problema XD. Y pensar que era tan fácil... :)
Yo es que los grep siempre los uso desde una tuberia y no sabia donde poner el fichero xD

Saludos
6 respuestas