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

Auflisten von Zeilen aus nur einer Datei in DIFF

Nicht sicher diff allein kann es tun, aber Sie können immer die Kraft anderer GNU-Dienstprogramme nutzen, um Ihnen zu helfen.

diff -u diffa.txt diffb.txt | grep '^-[^-]' | sed 's/^-//'

Es führt den Unterschied aus und wählt dann nur die Zeilen aus, die mit '-' beginnen - diese werden geändert und haben Werte aus der Datei diffa.txt, dann sed Entfernen Sie einfach diese '-'-Zeichen.

Bearbeiten: Nach einigen Experimenten mit diff , sieht so aus, als ob der folgende Befehl erzeugt, was Sie wollen:

diff --changed-group-format='%<' --unchanged-group-format='' diffa.txt diffb.txt

Eine einfachere Methode ist die Verwendung von comm Linux-Dienstprogramm (Es benötigt eine sortierte Datei für die Eingabe). Es schreibt auf die Standardausgabe:

  • Zeilen, die für diffa.txt einzigartig sind

  • Zeilen, die für diffb.txt eindeutig sind

  • Linien, die häufig vorkommen

und Sie können jeden von ihnen durch Parameter 1,2 oder 3 entsprechend unterdrücken. In Ihrem Fall sieht es also so aus:

comm -23 diffa.txt diffb.txt

Es unterdrückt Zeilen, die für diffb.txt eindeutig sind, Zeilen, die häufig vorkommen, und gibt Zeilen aus, die nur für diffa.txt eindeutig sind

Quelle von: https://www.tutorialspoint.com/unix_commands/comm.htm


Ich möchte diesen comm erwähnen erwartet sortierte Eingabedateien und meldet daher andere Ergebnisse als diff .

diff --changed-group-format='%<' --unchanged-group-format='' diffa.txt diffb.txt

ist universell. Hut ab vor @vava


Linux
  1. Ersetzen Sie Linien, die einem Muster entsprechen, durch Linien aus einer anderen Datei in der richtigen Reihenfolge?

  2. Wie fügt man mehrere Zeilen an eine Datei an?

  3. Awk aus verschiedenen Linien?

  4. Zeilen in einer Datei zählen?

  5. Zufällig eine bestimmte Anzahl von Linien aus einer Datendatei zeichnen?

So verbinden Sie mehrere Zeilen in einer Datei in Linux zu einer

So entfernen Sie Zeilen aus einer Datei mit dem Sed-Befehl

Effizient die ersten paar Zeilen aus einer Textdatei entfernen?

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

Lesen von Zeilen aus einer Datei mit Bash:Für Vs. Während?

Zeichnen Sie zufällig eine bestimmte Anzahl von Linien aus einer Datendatei