Doppelter Eintrag

J

jurgen_xf

Mitglied
Hallo,
Ich lade per ftp einige Textdateien (1.txt, 2.txt...15.txt) runter. Diese bestehen aus 2 Spalten. Einmal das Datum und ein Wert. Manchmal befinden sich doppelte Einträge in den Dateien. Wie kann man diese aus den unterschiedlichen Textdateien löschen?

...
mget *.txt
sort -u *.txt ???????


Gruss Jurgen
 
Dein Vorschlag klingt doch gut, solange Du die unterschiedlichen Dateien nicht behalten willst/ musst. Falls Du nur nach einer der zwei Spalten sortieren musst, kannst Du noch die Option '-k' verwenden.
 
Irgendwie überschreibt er die alten Dateien nicht. Er findet zwar die doppelten Einträge aber letztendlich sind die Textdateien unverändert....
 
sort schreibt seine Ausgabe in die Konsole (stdout). Du musst die Ausgabe umleiten, erhaltst dann allerdings eine einzige, neue Datei. Wie gesagt, die Methode ist nicht geeignet, die Dateienstruktur zu erhalten. Ich weiss nicht, ob das ueberhaupt mit Shell-mitteln ginge, oder ob Du z.B. perl benutzen musst, womit Du dann sowohl Dateiname als auch Zeile speichern kannst, dann alle Zeilen sortieren und von Duplikaten bereinigen kannst und danach sie dann wieder nach Dateien aufteilst. Allerdings muesstest Du dann implementieren, welche Datei ihre Zeile verlieren soll und welche nicht.

Ach ja, das Umleiten funktioniert mit
Code:
sort -u *.txt > einzigartig.text
 
Au weja.Hört sich kompliziert an. Dachte man kann mit ner Schleife durch alle Dateien gehen, die doppelten rauswerfen und letztendlich die Struktur beibehalten...Aber Danke für dein Hilfe....
 
Wenn sich die doppelten Eintraege jeweils nur in einer Datei befinden, geht das. Dann schreibst Du einfach
Code:
for i in *.txt; do sort -u $i > temp.text; mv temp.text $i; done; rm temp.text
Wenn sich die doppelten Eintraege allerdings ueber mehrere Dateien verteilen koennen, musst Du ja erstmal alle Zeilen einlesen, um ueberhaupt (aus-)sortieren zu koennen.
 
das scheint zu klappen, vielen Dank. er meckert nur wenn ich rm temp.text mache, "temp.text-no such file or directory". wenn ich rm weglasse kommt keine fehlermeldung.....(wo wird denn die temp erzeugt, kann sie nirgends finden)
 
Ist korrekt. Das "rm temp.text" brauchst Du nicht, weil vorher mv benutzt wird.
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

Skript bei Lubuntu nach jedem Start ausführen

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

Tabelle erst ab bestimmter Spalte anzeigen

Shell Skript zum automatischen Aufräumen von doppelten Ordnern

Zurück
Oben