diff, aber ohne Reihenfolge der Zeilen

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
michaa7
Beiträge: 4632
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

diff, aber ohne Reihenfolge der Zeilen

Beitrag von michaa7 » 10.04.2022 02:47:01

Ich möchte die Ausgabe von "lsmod" vergleichen, wie ich sie von zwei unterschiedlichen Kerneln der selben Installation erhalte. Dazu habe ich die Ausgabe von "lsmod" jeweils in eine Datei umgeleitet. Ein Vergleich mit "diff" klappt zwar. Aber lsmod scheint nicht zwingend die Module in der gleichen Reihenfolge zu listen. Und soweit ich das verstehe, und für Programmcode wäre das ja auch wichtig, ist für diff die Reihenfolge der Zeilen eben wichtig.

Nun die Frage : gibt es ein Programm, welches zwei Dateien untersucht, dabei gleiche Zeilen *unabhängig* von der Reihenfolge findet und dann unterdrückt, so dass nur Zeilen übrigbleiben, die nur jeweils in einer der Dateien vorkommen?

Oder kann mann diff dazu bewegen? In "man diff" habe ich nichts entsprechendes gefunden.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

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

Re: diff, aber ohne Reihenfolge der Zeilen

Beitrag von eggy » 10.04.2022 02:58:05

vor diff einmal durch sort schieben

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: diff, aber ohne Reihenfolge der Zeilen

Beitrag von tobo » 10.04.2022 09:54:04

Oder comm nehmen, was aber eine Sortierung voraussetzt. Die könnte man aber auch temporär einsetzen:

Code: Alles auswählen

comm -3 <(sort f1) <(sort f2)
EDIT:
Alternativ (ohne Sortierung) wäre auch noch sowas möglich:

Code: Alles auswählen

grep -Fvf f2 f1; grep -Fvf f1 f2

AxelMD
Beiträge: 1380
Registriert: 15.03.2009 08:02:11

Re: diff, aber ohne Reihenfolge der Zeilen

Beitrag von AxelMD » 10.04.2022 12:58:51

eggy hat geschrieben: ↑ zum Beitrag ↑
10.04.2022 02:58:05
vor diff einmal durch sort schieben
Steht doch in der Doku
eggy hat geschrieben: ↑ zum Beitrag ↑
10.04.2022 12:46:53
AxelMD hat geschrieben: ↑ zum Beitrag ↑
10.04.2022 12:31:08
Eröffnungspost und die Antwort von bluestar, das wären zwei Post gewesen.
und sich einmal ausführlich mit der Doku beschäftigten, wären null Posts gewesen.
Dein Post ist überflüssig, alles steht der der Doku, das Forum ist dann auch überflüssig?

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: diff, aber ohne Reihenfolge der Zeilen

Beitrag von JTH » 10.04.2022 14:08:11

AxelMD hat geschrieben: ↑ zum Beitrag ↑
10.04.2022 12:58:51
Steht doch in der Doku
So direkt wird man das in keiner Doku finden. Dazu muss man schon lsmod, sort und diff kennen und wissen, dass man mehrere Programme/-ausgaben durch eine Pipeline verbinden kann. Das wäre wahrscheinlich eine Transferleistung, wie sich das in Prüfungen meine ich immer genannt hat.

AxelMD hat geschrieben: ↑ zum Beitrag ↑
10.04.2022 12:58:51
[…] Forum ist dann auch überflüssig?
Auf sehr viele Beiträge könnte man ganz theoretisch definitiv verzichten, wenn jeder den notwendigen Kenntnisstand hätte und wüsste, wo man Dokumentationen findet und, wahrscheinlich wichtiger, wüsste, sich daraus selbst das nötige anzueignen. Da das sicher nicht der Fall ist, hat man hier die Möglichkeit, einen Anstoß zu bekommen. Komplett die Eigeninitiative abnehmen soll das Forum aber auf keinen Fall immer und überall – es antworten immer noch alle hier freiwillig und in Freizeit. (Letzteres ist ein Stück an dich gerichtet, nachdem ich gerade das parallele Thema zu GitHub-Forks gesehen habe.)
Manchmal bekannt als Just (another) Terminal Hacker.

AxelMD
Beiträge: 1380
Registriert: 15.03.2009 08:02:11

Re: diff, aber ohne Reihenfolge der Zeilen

Beitrag von AxelMD » 10.04.2022 14:58:42

OT
@JTH
Hier ist alles freiwillig, wenn niemand antwortet, versuche ich nach bestem Gewissen meine Fragen selber zu beantworten.
Auf Schnackerantworten, wie Google mal oder RTF oder siehe Doku verzichte ich gerne.
Oder Du bist faul zu lesen.
Es sind unfreundliche Antworten, fühle ich mich gestört überlese ich es und gebe keine Blödantworten.
Es sind immer die gleichen die so agieren.
So ein Verhalten behindert die Community, andere trauen sich nicht zu fragen.
Die sollen froh sein, dass sie etwas lesen dürfen.
Geht es ans eingemachte wird es schnell still.

Beispiel: viewtopic.php?t=176958&hilit=netzwerkscanner
Dafür aber ca. 24.713 Zugriffe.

MfG
AxelMD

tijuca
Beiträge: 297
Registriert: 22.06.2017 22:12:20

Re: diff, aber ohne Reihenfolge der Zeilen

Beitrag von tijuca » 10.04.2022 15:10:38

Das erinnert mich irgendwie an folgendes:
"Achtung, ein Geisterfahrer kommt Ihnen entgegen."

Was? Hunderte kommen mir entgegen!

michaa7
Beiträge: 4632
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: diff, aber ohne Reihenfolge der Zeilen

Beitrag von michaa7 » 10.04.2022 21:19:38

Danke für die Hilfe. Auf "sort" bin ich einfach nicht gekommen, und es war schon hilfreich hier die genaue syntax gepostet zu bekommen ... weil das das Gelegenheitsuser der CL nicht klar ist.

Habe beide varianten (diff + sort, comm + sort) ausprobiert, beide funktionieren. Fand die diff variante mit zwei nebeneinander stehenden Ausgaben am übersichtlichsten:

Code: Alles auswählen

diff --side-by-side --suppress-common-lines <(sort /home/<user>/lsmod17.txt) <(sort /home/<user>/lsmod16.txt)
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Antworten