GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare parole da un file in un altro file?

Puoi usare grep -f :

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

OPPURE per abbinare parole intere:

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

AGGIORNAMENTO: Come da commenti:

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

Usa grep in questo modo:

grep -f firstfile secondfile

SECONDA OPZIONE

Grazie a Ed Morton per aver sottolineato che le parole nel file "riservato" sono trattate come schemi. Se questo è un problema - potrebbe esserlo o meno - l'OP può forse usare qualcosa del genere che non usa schemi:

File "riservato"

cat
dog
fox

e file "testo"

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

Lo script Awk è così:

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 output:

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

TERZA OPZIONE

In alternativa, può essere fatto abbastanza semplicemente, ma più lentamente in bash:

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

Linux
  1. Come copiare le impostazioni da una macchina all'altra?

  2. Come copiare una tabella da un database mysql a un altro database mysql

  3. Come eseguire il file sh da un altro file sh

  4. Come caricare un file tramite FTP dalla riga di comando?

  5. Come inoltrare una porta da una macchina all'altra?

Come trovare una stringa in un file su Linux

Come estrarre indirizzi e-mail da file di testo in Linux

Come copiare un file da un'altra directory a quella corrente?

Come grep \n nel file

Come copiare i commit da un repository Git a un altro?

Copia l'intera gerarchia del file system da un'unità a un'altra