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.
for name in `cat /home/ruben/fuente.txt `
do
grep $name /home/ruben/*.txt >> salida
done
Hola,
para un archivo de texto sería:
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).
Un ejemplo más "mierder", aunque no sé si es esto lo que estabas buscando:
#!/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.
Gracias Seaworth
Tan simple como:
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
:-[
***********************