Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

220
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!