[Gelöst] Textdateien vergleichen.

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

[Gelöst] Textdateien vergleichen.

Beitrag von ottonormal » 02.01.2016 01:36:11

Hallo,

ich möchte 2 Textdateien (Paketlisten) miteinander vergleichen.
Es soll in einer 3. Datei (oder auch im Terminal) angezeigt werden, welche Pakete Datei 1 hat, die Datei 2 nicht hat.
Geht das mit einem einfachen Befehl oder gibt es sogar ein grafisches Programm dafür?

Gruß, ottonormal
Zuletzt geändert von ottonormal am 02.01.2016 13:20:06, insgesamt 1-mal geändert.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Textdateien vergleichen.

Beitrag von eggy » 02.01.2016 01:45:23

diff
oder graphisch meld (das geht aber nur bis zu ner gewissen Menge an Unterschieden gut)

edit: fehlendes i nachgeliefert
Zuletzt geändert von eggy am 02.01.2016 02:21:35, insgesamt 1-mal geändert.

Benutzeravatar
hikaru
Moderator
Beiträge: 13594
Registriert: 09.04.2008 12:48:59

Re: Textdateien vergleichen.

Beitrag von hikaru » 02.01.2016 02:01:56

eggy hat geschrieben:dff
Ich vermute, da fehlt ein i. ;)
diff aus Debiandiffutils würde jedenfalls besser zu Debianmeld passen als Debiandff.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Textdateien vergleichen.

Beitrag von eggy » 02.01.2016 02:20:12

ups :oops:

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Textdateien vergleichen.

Beitrag von smutbert » 02.01.2016 10:31:43

Code: Alles auswählen

comm <(sort paketliste1.txt) <(sort paketliste2.txt)
ergibt 3 Spalten, eine mit den Zeilen/Paketen, die nur in der ersten Datei, einer mit denen, die nur in der zweiten Datei vorkommen und schließlich eine mit den gemeinsamen Zeilen/Paketen. Mit Optionen kann man die einzelnen Spalten ausblenden. Mit

Code: Alles auswählen

comm -1 -3 <(sort paketliste1.txt) <(sort paketliste2.txt)
bleiben zB nur die Pakete übrig, die ausschließlich in der zweiten Datei stehen.

Du musst zum Vergleichen nicht nur Listen/Textdateien nehmen sondern kannst auch direkt Listen von installierten Pakete verarbeiten. Um also beispielsweise alle Pakete auszugeben, die swohl in der Liste vorkommen, wie auch installiert sind, sollte das hier funktionieren

Code: Alles auswählen

comm -1 -2 <(sort paketliste1.txt) <(dpkg --get-selections | grep install | awk '{ print $1 }')
Zuletzt geändert von smutbert am 02.01.2016 12:41:30, insgesamt 1-mal geändert.

Benutzeravatar
Phineas
Beiträge: 348
Registriert: 20.06.2012 20:26:19

Re: Textdateien vergleichen.

Beitrag von Phineas » 02.01.2016 11:51:02

smutbert hat geschrieben:

Code: Alles auswählen

comm <(sort paketliste1.txt)) <(sort paketliste2.txt)
Da ist eine schließende Klammer zuviel.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Textdateien vergleichen.

Beitrag von smutbert » 02.01.2016 12:41:44

danke, korrigiert.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Textdateien vergleichen.

Beitrag von ottonormal » 02.01.2016 13:19:08

Danke für Eure Antworten :THX:
meld habe ich mal installiert, damit komme ich aber noch nicht klar und muss mich
noch einarbeiten. Das werde ich aber noch machen.

@smutberts Anleitung hat gut funktioniert nachdem ich erst auch noch über die Klammer
gestolpert bin :wink:
Also noch mal vielen Dank :THX:

Antworten