[ge] Zeilen wo in a.txt jedoch nicht in b.txt enth. ausgeben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
tomi89
Beiträge: 269
Registriert: 21.08.2014 00:21:52

[ge] Zeilen wo in a.txt jedoch nicht in b.txt enth. ausgeben

Beitrag von tomi89 » 04.12.2015 15:13:15

Guten!

Womit kann man denn die Zeilen ausgeben, welche in a.txt jedoch nicht in b.txt enthalten sind?

Ich dachte ja so:

for x in $(cat a.txt); do grep -xF "$x" b.txt >/dev/null || echo "$x"; done

Aber dann scheitert grep z.B. wenn die Zeile mit einem - beginnt.

Mit grep "^$x$" funktioniert es auch nicht immer perfekt, warum genau habe ich noch nicht herausgefunden.

Oder gibt es auch ein Tool für diese Aufgabe?
Zuletzt geändert von tomi89 am 04.12.2015 15:30:03, insgesamt 2-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Zeilen wo in a.txt jedoch nicht in b.txt enth. ausgeben

Beitrag von Meillo » 04.12.2015 15:26:43

tomi89 hat geschrieben:Oder gibt es auch ein Tool für diese Aufgabe?
Ja, comm(1):

Code: Alles auswählen

sort a.txt >a.txt.sorted
sort b.txt >b.txt.sorted
comm -23 a.txt.sorted b.txt.sorted
Use ed once in a while!

tomi89
Beiträge: 269
Registriert: 21.08.2014 00:21:52

Re: Zeilen wo in a.txt jedoch nicht in b.txt enth. ausgeben

Beitrag von tomi89 » 04.12.2015 15:29:48

Genau das habe ich gesucht, danke dir.

Antworten