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

Suchen von Inhalten einer Datei in einer anderen Datei

grep selbst ist dazu in der Lage. Verwenden Sie einfach das Flag -f :

grep -f <patterns> <file>

<patterns> ist eine Datei, die in jeder Zeile ein Muster enthält; und <file> ist die Datei, in der Sie suchen möchten.

Beachten Sie, dass grep erzwungen wird Um jede Zeile als Muster zu betrachten, selbst wenn der Inhalt jeder Zeile wie ein regulärer Ausdruck aussieht, sollten Sie das Flag -F, --fixed-strings verwenden .

grep -F -f <patterns> <file>

Wenn es sich bei Ihrer Datei um eine CSV-Datei handelt, können Sie Folgendes tun:

grep -f <(tr ',' '\n' < data.csv) <file>

Betrachten Sie als Beispiel die Datei "a.txt" mit den folgenden Zeilen:

alpha
0891234
beta

Nun die Datei "b.txt", mit den Zeilen:

Alpha
0808080
0891234
bEtA

Die Ausgabe des folgenden Befehls ist:

grep -f "a.txt" "b.txt"
0891234

Sie müssen überhaupt nicht for -Schleife hier; grep selbst bietet diese Funktion an.

Verwenden Sie jetzt Ihre Dateinamen:

#!/bin/bash
patterns="/home/nimish/contents.txt"
search="/home/nimish/another_file.csv"
grep -f <(tr ',' '\n' < "${patterns}") "${search}"

Sie können ',' ändern zu dem Trennzeichen, das Sie in Ihrer Datei haben.


Eine andere Lösung:

  • benutze awk und erstellen Sie Ihren eigenen hash (z. B. ahash), die alle von Ihnen selbst gesteuert werden.
  • ersetze $0 to $i und Sie können beliebige Felder abgleichen.
awk -F"," '
{  
   if (nowfile==""){ nowfile = FILENAME;  }

   if(FILENAME == nowfile)
   {
     hash[$0]=$0;
   }
   else
   {
       if($0 ~ hash[$0])
       {  
           print $0
       }
   }
} '  xx yy

Linux
  1. Kopieren Sie die letzten N-Zeilen von einer Datei in eine andere?

  2. Dateiinhalte ausgeben, während sie sich ändern?

  3. So fügen Sie den Inhalt mehrerer Dateien in eine Datei ein

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

  5. Kopieren Sie die gesamte Dateisystemhierarchie von einem Laufwerk auf ein anderes

Finden von Block- und Datei-OCP-Anwendungsinhalten in ODF:Die Infrastruktur

Finden von Block- und Datei-OCP-Anwendungsinhalten in ODF:Erstellen eines Dateispeicherprojekts

Finden von Block- und Datei-OCP-Anwendungsinhalten in ODF:Erstellen des Projekts

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

Werkzeug, um die Zeilen in einer Datei zu erhalten, die nicht in einer anderen sind?

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