Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Doppelte (3,4,5-fache...) Zeilen aus csv datei entfernen

Frage Entwicklung Batch & Shell

Mitglied: RichardB

RichardB (Level 1) - Jetzt verbinden

23.02.2009, aktualisiert 15:50 Uhr, 6342 Aufrufe, 5 Kommentare

Hallo Forum,

nachdem ich letztens hier tolle Hilfe bekommen habe stehe ich jetzt vor einem neuen Problem dass ich leider nicht alleine gelöst bekomme:

Ich habe eine CSV Datei mit folgenden Aufbau:

7.87815,49.171267,"S3W0QA"
7.7283,49.086917,"S4W0QA"
7.602317,49.108617,"S5W0QA"
7.761333,49.256583,"S6W0QA"
7.87815,49.171267,"S3W0QA"
7.7283,49.086917,"S4W0QA"
8.106033,49.347967,"XXVZVG :Parkplatz Königsmühle"
7.602317,49.108617,"S5W0QA"
7.761333,49.256583,"S6W0QA"
7.87815,49.171267,"S3W0QA"
7.7283,49.086917,"S4W0QA"

Als Ergebniss sollte dies hier herauskommen:

7.87815,49.171267,"S3W0QA"
7.7283,49.086917,"S4W0QA"
7.602317,49.108617,"S5W0QA"
7.761333,49.256583,"S6W0QA"
8.106033,49.347967,"XXVZVG :Parkplatz Königsmühle"

Versucht habe ich dass zu lösen mit folgendem Batch:


FOR /f "tokens=1" %%f IN (acache.csv) DO call :ausgabe %%f
goto :eof
:ausgabe
find "%*" acache.csv || echo %*>>acacheneu.csv
goto :eof

Leider funktioniert dass ganze nicht es wird zwar eine Datei erstellt aber die doppelten Zeilen sind immer noch vorhanden...

Irgendwie möchte der Knoten nicht platzen..Währe toll wenn mir da mal jemand einen Tipp geben könnte.

Grüsse
RichardB
Mitglied: bastla
23.02.2009 um 16:42 Uhr
Hallo RichardB!

Das Problem sind die enthaltenen Anführungszeichen - diese musst Du für eine Suche mit einem vorangestellten "\" maskieren.

Der folgende Code setzt einen Satzaufbau aus 3 Feldern, von denen nur das letzte unter Anführungszeichen steht, voraus. Das Feldtrennzeichen ist als %Delim% festzulegen.

01.
@echo off & setlocal 
02.
set "Alt=acache.csv" 
03.
set "Neu=acacheneu.csv" 
04.
set "Delim=," 
05.
 
06.
if exist "%Neu%" del "%Neu%" 
07.
for /f "usebackq tokens=1-3 delims=%Delim%" %%a in ("%Alt%") do findstr "%%a%Delim%%%b%Delim%\"%%~c\"" "%Neu%">nul 2>nul || >>"%Neu%" echo %%a%Delim%%%b%Delim%%%c
Grüße
bastla

P.S.: Ohne die Berücksichtigung von Anführungszeichen hätte ein Oneliner direkt von der Kommandozeile genügt (zumindest, wenn es die Datei "acacheneu.csv " noch nicht gibt ):
FOR /f "delims=" %f IN (acache.csv) DO findstr "%f" acacheneu.csv>nul 2>nul || >>acacheneu.csv echo %f
Bitte warten ..
Mitglied: RichardB
23.02.2009 um 17:02 Uhr

Hallo Bastla,

Die " sind also schuld...da wäre ich nicht dahinter gekommen...

Vielen Dank für die schnelle Hilfe!!!

Grüsse
Richard
Bitte warten ..
Mitglied: bastla
23.02.2009 um 17:14 Uhr
Hallo RichardB!

Noch ein Nachtrag: Eigentlich sollte (auch wenn vermutlich die Wahrscheinlichkeit gering ist, dass eine Zeile zur Gänze in einer anderen enthalten ist) die gesamte Zeile verglichen werden - dazu wäre noch ein "/x" für das "findstr" nötig. Die Zeile "7 neu" sähe dann so aus:
for /f "usebackq tokens=1-3 delims=%Delim%" %%a in ("%Alt%") do findstr /x "%%a%Delim%%%b%Delim%\"%%~c\"" "%Neu%">nul 2>nul || >>"%Neu%" echo %%a%Delim%%%b%Delim%%%c
Grüße
bastla
Bitte warten ..
Mitglied: RichardB
23.02.2009 um 20:14 Uhr
Hallo bastla,

danke für den Hinweis...wenn ich dieses /x einsetze dann löscht er mir allerdings die Zeilen mit dem Langtext zwischen den " nicht...ohne /x löscht er einige kpl.

Ich kann da keine `Logik` drin sehen
Bitte warten ..
Mitglied: bastla
23.02.2009 um 20:25 Uhr
Hallo RichardB!

Als schwacher Trost: Mit den von Dir geposteten Beispieldaten gab es in dieser Hinsicht keine Probleme ...

Sind ev noch irgendwelche Sonderzeichen im Spiel?

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (29)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...