Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Doppelte Datensätze aus einer txt-Datei löschen

Mitglied: ChrisM73

ChrisM73 (Level 1) - Jetzt verbinden

08.12.2008, aktualisiert 10.12.2008, 5522 Aufrufe, 6 Kommentare

Hallo ich habe das Problem das ich eine sehr lange Textdatei,mit Datensätzen habe und diese darf keine Leerzeilen oder doppelte oder gar 3 oder 4 fach die gleichen Datensätze enthält.
Die Datei sieht ungefähr so aus:

0114008,V00016317,0811422,1,20081205,000186CC.000,888,1,269,01,861,10,850,10
0114008,V00016317,0811422,1,20081205,000186CD.000,888,1,269,01,861,10,850,10
0114008,V00691087,0713420,1,20081205,00013292.000,888,1,090,01,278,01,269,01,240,01,861,10,850,10
0114008,V00691087,0713420,1,20081205,000132CE.000,888,1,090,01,278,01,269,01,240,01,861,10,850,10
0114008,V00691087,0713420,1,20081205,00013520.000,888,1,090,01,278,01,269,01,240,01,861,10,850,10
0114008,V00691087,0713420,1,20081205,0001367E.000,888,1,090,01,278,01,269,01,240,01,861,10,850,10
0114008,V02569433,0576220,1,20081205,00018991.000,888,1,090,01,278,01,269,01,240,01,861,10,850,10
0114008,V02569433,0576220,1,20081205,00018992.000,888,1,090,01,278,01,269,01,240,01,861,10,850,10

0114008,V02770806,0516610,1,20081205,00019440.000,888,1,090,01,278,01,240,01
0114008,V02770806,0516610,1,20081205,0001944D.000,888,1,090,01,278,01,269,01
0114008,V03885491,0516610,1,20081205,00019443.000,888,1,090,01,278,01,269,01
0114008,V03885491,0516610,1,20081205,0001944F.000,888,1,090,01,278,01,269,01
0114008,V04212450,0516610,1,20081205,00019442.000,888,1,090,01,278,01,269,01
0114008,V04212450,0516610,1,20081205,0001944E.000,888,1,090,01,278,01,269,01

und sollte danach so aussehen:

0114008,V00016317,0811422,1,20081205,000186CC.000,888,1,269,01,861,10,850,10
0114008,V00691087,0713420,1,20081205,00013292.000,888,1,090,01,278,01,269,01,240,01,861,10,850,10
0114008,V02569433,0576220,1,20081205,00018991.000,888,1,090,01,278,01,269,01,240,01,861,10,850,10
0114008,V02770806,0516610,1,20081205,00019440.000,888,1,090,01,278,01,240,01
0114008,V03885491,0516610,1,20081205,0001944F.000,888,1,090,01,278,01,269,01
0114008,V04212450,0516610,1,20081205,00019442.000,888,1,090,01,278,01,269,01

wichtig ist eigentlich nur falls die ersten beiden Zahlen gleich sind das dann einer von beiden Sätzen gelöscht wird.

wie kann ich das am besten automatisiert machen?
Mitglied: bastla
08.12.2008 um 19:16 Uhr
Hallo ChrisM73!

Falls Dich das Verschwinden von Leerzeilen sowie die Tatsache, dass das Ergebnis sortiert ist, nicht stören sollten, etwa so:
01.
@echo off & setlocal 
02.
set "Datei=D:\Ausgangsdatei.txt" 
03.
set "Bak=.bak" 
04.
 
05.
sort "%Datei%" /o "%Datei%%Bak%" 
06.
del "%Datei%" 
07.
set Zuletzt="," 
08.
for /f "usebackq tokens=1,2* delims=," %%i in ("%Datei%%Bak%") do set "Zeile=%%i,%%j,%%k" & call :ProcessLine "%%i%%j" 
09.
goto :eof 
10.
 
11.
:ProcessLine 
12.
if %1==%Zuletzt% goto :eof 
13.
set Zuletzt=%1 
14.
>>"%Datei%" echo %Zeile% 
15.
goto :eof
Die Daten aus der ursprünglichen Datei stehen (sortiert, Leerzeilen am Anfang der Datei) als "Originaldatei.bak" weiterhin zur Verfügung (falls ein echtes Backup benötigt wird, einfach vorweg noch ein "copy" einbauen), die Ausgangsdatei wird durch die neue Fassung (ohne Duplikate) ersetzt.

Grüße
bastla

[Edit] Leerzeichen nach "/o" ergänzt. [/Edit]
Bitte warten ..
Mitglied: ChrisM73
09.12.2008 um 10:43 Uhr
Hallo Bastla,
vielen Dank für deine Hilfe, allerdings bringt er mir nen Fehler, habs im Dos-Fenster ausgeführt,bei sort "P:\Ausgangsdatei.txt" /o"P:\Ausgangsdatei.txt.bak" bringt er den Fehler ungültige Funktion. Was ist daran falsch?
Bitte warten ..
Mitglied: bastla
09.12.2008 um 11:15 Uhr
Hallo ChrisM73!

Ein Leerzeichen nach dem "/o" sollte das Problem beheben (ich habe das oben auch nachgetragen).

Grüße
bastla
Bitte warten ..
Mitglied: ChrisM73
09.12.2008 um 11:23 Uhr
Hallo Bastla,
super jetzt läuft es!!! Allerdings habe ich noch was übersehen. Wenn die ersten 2 Zahlen einer Zeile bei 2 Zeilen gleich sind soll er auch eine Zeile von den beiden löschen.
Wie kann man das noch implementieren?

also wenn der Datensatz folgende Zeilen enthalten würde:

0021145,V07658465,01,544,01,584,01,582
0021145,V07658465,01,544,01,584

dann sollte nur noch dieser übrigbleiben:

0021145,V07658465,01,544,01,584,01,582
Bitte warten ..
Mitglied: bastla
10.12.2008 um 11:06 Uhr
Hallo ChrisM73!
Wenn die ersten 2 Zahlen einer Zeile bei 2 Zeilen gleich sind soll er auch eine Zeile von den beiden löschen.
Wie kann man das noch implementieren?
Eigentlich sollte das bereits so funktionieren ...

Du könntest die Zeile 12 ändern auf
if /i %1==%Zuletzt% goto :eof
Da in den "Zahlen" offensichtlich auch Buchstaben enthalten sein können, sorgt das "/i" dafür, dass Groß-/Kleinschreibung nicht unterschieden wird (auch, wenn das kein Problem sein sollte, schadet's nicht).

Grüße
bastla
Bitte warten ..
Mitglied: ChrisM73
10.12.2008 um 11:20 Uhr
Super, das wars, vielen Dank hast mir sehr viel händische Arbeit erspart...
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Doppelte Zeilen in Text-Datei löschen

gelöst Frage von reckheimBatch & Shell15 Kommentare

Hallo ich schreibe lange Übersetzungsprogramme in FoxPro in unten folgender Text-Datei-Form. Die Datei ist allerdings durch Zusammenführung verschiedener Versionen ...

Datenbanken

Doppelten Datensatz suchen und Wert erhöhen

gelöst Frage von dax4funDatenbanken1 Kommentar

Moin, es gingen mir schon alle Suchbegriffe beim googlen aus um eine SQL Abfrage zu basteln die folgendes tun ...

Microsoft Office

Löschen von bestimmten Datensätzen

gelöst Frage von Anna2701Microsoft Office4 Kommentare

Hallöchen zusammen, ich möchte gerne einen bestimmten Datensatz aus Access mit Hilfe von SQL löschen lassen. Habe es hinbekommen, ...

Batch & Shell

Doppelte Dateneinträge per Batch aus Datei löschen? HILFE

gelöst Frage von freshman2017Batch & Shell7 Kommentare

Liebe Gemeinde, Ihr konntet mir als Anfänger sehr gut helfen. Ich brauche jetzt aber noch Hilfe bei der doppelte ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 9 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 14 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

Visual Studio
Singletone Objekt in Datei speichern
gelöst Frage von it4baerVisual Studio13 Kommentare

Hallo, ist es möglich ein Singleton-Objekt zu "serialisieren" und dann in eine Datei zu speichern um es später wieder ...