uhu-stic
Goto Top

Duplikate löschen - funktioniert nicht...

Hallo Ihr Admins,

habe gemäß der Lösung von Biber vom 28.05.2009 um 08:29 Uhr :

Mit Batchdatei aus einer .txt alle doppelten Zeilen (Duplikate) komplett löschen

versucht Duplikate aus einer Textdatei zu löschen.

Diese funktioniert auch super, solange
- entweder keine Duplikate in meiner Textdatei sind oder
- mindestens eine Textzeile abweichend ist.

Sobald die Datei aber ausschließlich aus Duplikaten besteht, funktioniert es nicht...

Datei könnte also sein:
11111111
11111111
22222222
22222222
33333333
33333333

Und diese sieht nach dem Skript nach der Lösung von Biber immer noch genauso aus...
11111111
11111111
22222222
22222222
33333333
33333333

Nach meinem Verständnis müsste ich jedoch eine 0kB Datei (also eine leere Datei) bekommen

Kann mir da jemand auf die Sprünge helfen?

Gruß

UHU-stic

PS Die Lösung von LotPings 28.05.2009 um 11:01 Uhr habe ich nicht nachvollziehen können und diese somit aus meiner Bewertung ausgenommen

Content-Key: 250420

Url: https://administrator.de/contentid/250420

Printed on: April 23, 2024 at 18:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer Sep 29, 2014 updated at 07:30:05 (UTC)
Goto Top
Moin,

sort test.txt  | tee test.txt.sort | uniq >test.txt.uniq ; diff test.txt.uniq  test.txt.sort | grep ">" | gawk -F "> " ' { print $2 } '  | sort -u >test.txt.double ;  grep -v -f test.txt.double -F test.txt | tee result.txt

Die "Einzeiler"-Lösung, die man auch unter windows z.B. mit cygwin nutzen kann.

Und ja, das Ergebnis sollte aufgrund der Aufgabenstellung "leer" sein. Wenn es das nicht ist, Hat das Skript vermutlich einen Fehler, wi z.B. Spezialfall nicht abgefangen oder so (Ich habe mir jetzt das ale Skript nicht angeschaut).

lks

PS: Umformattiert zum Dreizeiler

sort test.txt  | tee test.txt.sort | uniq >test.txt.uniq
diff test.txt.uniq  test.txt.sort | grep ">" | gawk -F "> " ' { print $2 } '  | sort -u >test.txt.double
grep -v -f test.txt.double -F test.txt | tee result.txt
Member: UHU-stic
UHU-stic Sep 30, 2014 at 03:34:57 (UTC)
Goto Top
Moinsen lks,

danke erstmal für die schnelle Antwort - die mir jedoch nur bedingt hilft (trotz des Hinweises auf das cygwin Projekt; sehr interessant, muss ich mir die Tage mal genauer anschauen)...

Herausforderung für mich bzw. die von mir angestrebte Lösung ist jedoch eine einfache Windows-Batch-Datei (also eben auch kein VBS o.ä.).

Jemand einen Tipp der sich auf die bereits beschriebene Lösung
Mit Batchdatei aus einer .txt alle doppelten Zeilen (Duplikate) komplett löschen
bezieht?

Sicher ist da genau das von lks geschriebene "Spezialfall nicht abgefangen" der Fall...

Gruß

UHU-stic
Member: Lochkartenstanzer
Lochkartenstanzer Sep 30, 2014 at 05:11:29 (UTC)
Goto Top
So auf die Schnelle würde ich einfah eine Dummy-Zeile anfügen und hinterher wieder löschen., damit der Sonderfall umgangen wird.

Lks