GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie finde ich Wörter aus einer Datei in einer anderen Datei?

Sie können grep -f verwenden :

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

ODER andernfalls, um vollständige Wörter abzugleichen:

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

AKTUALISIERUNG: Gemäß den Kommentaren:

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

Verwenden Sie grep wie folgt:

grep -f firstfile secondfile

ZWEITE OPTION

Vielen Dank an Ed Morton für den Hinweis, dass die Wörter in der Datei „reserviert“ als Muster behandelt werden. Wenn dies ein Problem ist - es kann sein oder auch nicht - kann das OP vielleicht so etwas verwenden, das keine Muster verwendet:

Datei "reserviert"

cat
dog
fox

und Datei "text"

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

Awk-Skript sieht folgendermaßen aus:

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

mit Ausgabe:

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

DRITTE OPTION

Alternativ geht es auch ganz einfach, aber langsamer in bash:

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

Linux
  1. So finden Sie eine Datei in Linux

  2. So finden und kopieren Sie bestimmte Dateitypen von einem Verzeichnis in ein anderes unter Linux

  3. So kopieren oder klonen Sie Berechtigungen von einer Datei in eine andere unter Linux

  4. Lesen von Grep-Mustern aus einer Datei?

  5. So kopieren Sie eine Tabelle von einer MySQL-Datenbank in eine andere MySQL-Datenbank

So finden Sie eine Zeichenfolge in einer Datei unter Linux

So extrahieren Sie E-Mail-Adressen aus einer Textdatei unter Linux

Wie kopiert man eine Datei aus einem anderen Verzeichnis in das aktuelle?

Kopieren Sie die gesamte Dateisystemhierarchie von einem Laufwerk auf ein anderes

Wie leitet man einen Port von einer Maschine zu einer anderen weiter?

Kopieren Sie große Dateien von einem Linux-Server auf einen anderen