Programm zum vergleichen von Zeilenanfängen in Dateien
felix
- perl
Hi,
ich habe ein Problem und weiss nicht wie ich es lösen kann:
ich habe unter Linux eine Datei, die zeilenweise kommasepariert Einträge enthält.
Jetzt sollen alle Zeilen, die mit den gleichen Textmuster beginnen an der Konsole ausgegeben werden.
also so:
Datei:
Testmuster1, ashdg, weuhc, wefouhw
Testmuster2, eorg, regijh, ergojerg
Testmuster1, sdjhsd, sdjkh, sdjfhs
Testmuster3, sddsfhu, sdjfhs, ojhfso
Testmuster4, dshf, sdhfs, sdjf hks
Testmuster2, sdfhs, khf, ksf
Jetzt soll an der Konsole ungefähr folgendes stehen.
Gleiche Zeilenanfänge:
Testmuster1, ashdg, weuhc, wefouhw
Testmuster1, sdjhsd, sdjkh, sdjfhs
Testmuster2, eorg, regijh, ergojerg
Testmuster2, sdfhs, khf, ksf
kann mir jemand helfen oder einen tipp geheb?
gruß
felix
ich habe unter Linux eine Datei, die zeilenweise kommasepariert Einträge enthält.
Jetzt sollen alle Zeilen, die mit den gleichen Textmuster beginnen an der Konsole ausgegeben werden.
Wenn das eine größere Datei ist, wäre das eine klassische Aufagbe für eine SQL Abfrage. Weil es hier keinen Trick oder sowas gibt, sondern du musst die komplette Datei einlesen und alles umsortieren
also so:
Datei:
Testmuster1, ashdg, weuhc, wefouhw
Testmuster2, eorg, regijh, ergojerg
Testmuster1, sdjhsd, sdjkh, sdjfhs
Testmuster3, sddsfhu, sdjfhs, ojhfso
Testmuster4, dshf, sdhfs, sdjf hks
Testmuster2, sdfhs, khf, ksfJetzt soll an der Konsole ungefähr folgendes stehen.
Gleiche Zeilenanfänge:
Testmuster1, ashdg, weuhc, wefouhw
Testmuster1, sdjhsd, sdjkh, sdjfhs
Testmuster2, eorg, regijh, ergojerg
Testmuster2, sdfhs, khf, ksfkann mir jemand helfen oder einen tipp geheb?
einlesen, splitten und dann einen HASH bilden der den ersten Wert als Schlüssel hat und die Werte Arrays mit den Zeilen sind.
Struppi.
hmm,
die datei habe ich mittlerweise sortiert bekommen.
d.h. jetzt stehen die doppelten zeilenanfänge untereinander.
gibt es eine einfachere möglichkeit, als die datei in eine Datenbank einzulesen?
es reicht mir ja wenn ich die doppelten ausgegeben bekomme.
gruss
felix
Hey,
sortiere die Datei einfach.
sort datei > neuedatei
hallo
sortiere die Datei einfach.
sort datei > neuedatei
ich habe doch geschrieben sortiert ist die datei schon! es geht nun darum die doppelten zu finden
ich habe doch geschrieben sortiert ist die datei schon! es geht nun darum die doppelten zu finden
Schrieb ich doch schon, das sollte einfach mit einem HASH gehen.
Struppi.
ich habe doch geschrieben sortiert ist die datei schon!
Ach so, dann hab ich dich falsch aufgefasst, 'tschuldigung.
es geht nun darum die doppelten zu finden
Mit uniq.
sort datei|uniq -c|sort -nr|grep -v "^ 1 "
^ sortiert Zeilen
^ doppelte Zeilen werden zusammengefasst,
Anzahl der Vervielfachung wird vor die
Zeile geschrieben
^ sortiert Zeilen numerisch
rückwärts, d.h. viele Vielfache
zuerst, einzelne zuletzt
^ zeige nicht die einzelnen
Zeilen