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

Gemeinsame Linien (Ähnlichkeiten) zweier Textdateien ausgeben (das Gegenteil von Diff)?

Diff ist ein großartiges Werkzeug, um die Änderungen zwischen zwei Dateien anzuzeigen. Aber wie kann man die Ähnlichkeiten zweier Textdateien anzeigen (während die Unterschiede ignoriert werden)?

D.h. Beispieleingabe:

a:
Foo Bar
X
Hello
World
42

b:
Foo Baz
Hello
World
23

Pseudo-Ausgabe (etwa so):

@@ 2,3
=Hello World

Es reicht nicht aus, beide Dateien zu sortieren und comm zu verwenden, da in diesem Fall die Zeileninformationen verloren gehen.

Akzeptierte Antwort:

Wie wäre es mit diff, obwohl Sie kein diff wollen? Versuchen Sie Folgendes:

diff --unchanged-group-format='@@ %dn,%df 
  %<' --old-group-format='' --new-group-format='' 
  --changed-group-format='' a.txt b.txt

Folgendes bekomme ich mit Ihren Beispieldaten:

$ cat a.txt 
Foo Bar
X
Hello
World
42
$ cat b.txt 
Foo Baz
Hello
World
23
$ diff --unchanged-group-format='@@ %dn,%df
%<' --old-group-format='' --new-group-format='' 
  --changed-group-format='' a.txt b.txt
@@ 2,3
Hello
World

Linux
  1. So verbinden Sie zwei Textdateien unter Linux

  2. Diff meldet, dass sich zwei Dateien unterscheiden, obwohl sie gleich sind!?

  3. So konvertieren Sie Textdateien in Groß- oder Kleinbuchstaben

  4. Zeigt zwei Dateien nebeneinander an

  5. So erhalten Sie den Unterschied (nur Ergänzungen) zwischen zwei Dateien in Linux

Text auf der Terminalausgabe suchen?

Text zwischen zwei bestimmten Zeilen extrahieren?

Verwenden des Diff-Befehls zum Vergleichen zweier Dateien im Linux-Terminal

Vergleichen von zwei Dateien im Linux-Terminal

Wie kann ich zwei XML-Dateien unterscheiden?

Wie kann man nur die erste Zeile von zwei Dateien unterscheiden?