Hallo, folgendes Problem ich habe mehrere Textdateien und ich möchte nun wissen welche Zeilen in ALLEN Dateien vorkommen. Idealerweise sollte das Ganze unter Linux funktionieren. Bsp: a.txt - - - a b c - - - b.txt - - - a d e - - - c.txt - - - a c d - - - Ausgabe: - - - a - - - Vielen Dank Jay
1 | $ python 1.py *.txt |
2 | a |
3 | |
4 | $ python 1.py a.txt c.txt |
5 | a |
6 | c |
Ohne Gewähr.
Das geht in Python auch RAM-sparender, die Geschwindigkeit ändert sich bei 10000 Dateien mit je 10000 Zeilen mit Zufallszahlen von 0 bis 99 nicht. Die naive C++-Variante im Anhang braucht mit diesem Testfall sogar deutlich länger.
Hallo, vielen Dank. Das erste Skript hat wunderbar funktioniert. Leider ist mir aufgefallen, dass ich mein Problem so nicht lösen kann. Kurze Hintergrundgeschichte: Ich habe gerade eine Sicherungskopie auf mehrere Festplatten verteilt. Dabei musste ich 'manuell' entscheiden, welche Ordner/Dateien auf welche Festplatte gespeichert werden soll um die Festplatten möglichst auszunutzen. Um einigemassen sicher zu gehen, dass die Daten korrekt geschrieben wurde habe ich diff über die Festplatten und die Orginaldaten laufen lassen. Je nach Festplatten "fehlen" natürlich manche Ordner/Dateien. Die Ausgabe von diff habe ich in Dateien umgeleitet. Alle Daten auf den Festplatten stimmen anscheinend mit den orginal Daten überein. Mein Problem, welches ich mit dem Skript lösen wollte, ist: Ich wollte sicher gehen, dass ich nicht ausversehen einen Unterordner vergessen habe. Mein Gedanke war nun wenn eine Zeile in allen vier Ausgabedateien von diff vorkommt fehlt sie und ich habe sie nicht gesichert. Dummerweise geht diff anscheinend nicht in die Unterordner(vielleicht hab ich auf ein Flag vergessen) wenn der Ordner nicht existiert und somit kann ich das Skript so nicht einsetzen. Bsp.: a.txt - - - Only in /org/tmp/x - - - b.txt - - - Only in /org/tmp/ - - - Auf Festplatte A fehlt der Ordner "/org/tmp/x" auf Festplatte B fehlt aber schon der übergeordnete Ordner "/org/tmp". "/ord/tmp/x" ist also weder auf A noch auf B. Das Skript würde aber so sagen, dass alles in Ordnung ist. Aber insgesamt sind es nur ca. 230 Zeilen. Das werde ich auch manuell hinbekommen. Nochmals vielen Dank, Jay
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.