GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo encontrar palabras de un archivo en otro archivo?

Puedes usar grep -f :

grep -Ff "first-file" "second-file"

O bien para hacer coincidir palabras completas:

grep -w -Ff "first-file" "second-file"

ACTUALIZACIÓN: Según los comentarios:

awk 'FNR==NR{a[$1]; next} ($1 in a){delete a[$1]; print $1}' file1 file2

Usa grep así:

grep -f firstfile secondfile

SEGUNDA OPCIÓN

Gracias a Ed Morton por señalar que las palabras en el archivo "reservado" se tratan como patrones. Si eso es un problema, puede serlo o no, el OP tal vez pueda usar algo como esto que no usa patrones:

Archivo "reservado"

cat
dog
fox

y archivo "texto"

The cat jumped over the lazy
fox but didn't land on the
moon at all.
However it did land on the dog!!!

El script Awk es así:

awk 'BEGIN{i=0}FNR==NR{res[i++]=$1;next}{for(j=0;j<i;j++)if(index($0,res[j]))print $0}' reserved text

con salida:

The cat jumped over the lazy
fox but didn't land on the
However it did land on the dog!!!

TERCERA OPCIÓN

Alternativamente, se puede hacer de manera bastante simple, pero más lentamente en bash:

while read r; do grep $r secondfile; done < firstfile 

Linux
  1. ¿Leyendo patrones Grep de un archivo?

  2. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql

  3. ¿Cómo puedo encontrar un archivo específico desde una terminal Linux?

  4. Cómo ejecutar un archivo sh desde otro archivo sh

  5. Cómo grep \n en el archivo

Cómo encontrar una cadena en un archivo en Linux

Cómo encontrar y copiar cierto tipo de archivos de un directorio a otro en Linux

Cómo extraer direcciones de correo electrónico de un archivo de texto en Linux

Cómo copiar o clonar permisos de un archivo a otro en Linux

¿Encontrar las N palabras más frecuentes en un archivo?

¿Cómo copiar un archivo de otro directorio al actual?