Foro de elhacker.net

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: ruben_linux en 3 Septiembre 2012, 18:16 pm



Título: ayuda con el copmando grep
Publicado por: ruben_linux en 3 Septiembre 2012, 18:16 pm
El caso es que tengo un "txt" con una serie de palabras que necesito buscar en otro directorio con varios archivos "txt".

/home/ruben/fuente.txt---> las palabras que quiero buscar
/home/ruben/*.txt --------> los archivos en los que quiero buscar

he probado a pasar la salida de cat a grep (cat /home/ruben/fuentes.txt | grep /home/ruben/*.txt) pero no funciona, tambien, añadi las opciones -f y -w a grep y sigue sin funcionar.

buscando por la red di con este script, pero tampoco consigo el resultado deseado.

Código:
for name in `cat /home/ruben/fuente.txt `
do
grep $name /home/ruben/*.txt >> salida
done


Título: Re: ayuda con el copmando grep
Publicado por: Seaworth en 3 Septiembre 2012, 18:59 pm
Hola,

para un archivo de texto sería:
Código:
grep -f fuente.txt archivo_donde_buscar.txt

Para archivos en un directorio, no sé si funcionaría:
Citar
for i in /home/ruben/*.txt    <ENTER>
>do              <ENTER>
>grep -f /home/ruben/fuente.txt $i  <ENTER>
>done;

pero revísalo, porque lo he probado deprisa y corriendo y no he revisado casos (o sea, que no se "salte" ocurrencias).



Título: Re: ayuda con el copmando grep
Publicado por: Seaworth en 3 Septiembre 2012, 19:40 pm
Un ejemplo más "mierder", aunque no sé si es esto lo que estabas buscando:

Código:
#!/bin/bash

for i in *.txt; do cat *.txt > salida-total.doc;
done;
grep -w -f /home/ruben/fuente.txt salida-total.doc;
rm salida-total.doc;

Ten en cuenta que si el archivo "fuente.txt" está en el mismo directorio que los ".txt" donde buscas, igual al cat o al grep se les va la pinza. Una manera sería renombrar el "fuente.txt" a "fuente.doc" para que no le afecte el "cat *.txt".

No sé si esto te funcionará o era lo que buscabas...

Saludos.


Título: Re: ayuda con el copmando grep
Publicado por: ruben_linux en 3 Septiembre 2012, 20:06 pm
Gracias Seaworth
Tan simple como:

Código:
grep -f /home/ruben/fuente.txt /home/ruben/archivos/*

busca las palabras que contiene fuente.txt en todos los documentos de /home/ruben/archivos/*

**********************

ANULAR ESTABA ENGAÑADO

 :-[
***********************