Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

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

En un archivo de texto, tengo 150 palabras. Tengo otro archivo de texto, que tiene unas 100.000 líneas.

¿Cómo puedo verificar si cada una de las palabras que pertenecen al primer archivo está en el segundo o no?

Pensé en usar grep , pero no pude encontrar cómo usarlo para leer cada una de las palabras en el texto original.

¿Hay alguna manera de hacer esto usando awk ? ¿O otra solución?

Probé con este script de shell, pero coincide con casi todas las líneas:

 #!/usr/bin/env sh cat words.txt | while read line; do if grep -F "$FILENAME" text.txt then echo "Se encontró $line" fi done

Otra forma que encontré es:

 fgrep -w -o -f "words.txt" "text.txt"
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puedes usar grep -f :

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

O bien para que coincida con las 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
over 4 years ago · Santiago Trujillo Denunciar

0

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 o no serlo, 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
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda