Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

227
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda