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
GELÖST

Per Batch CSV Datei zeilenweise bereinigen

Frage Entwicklung Batch & Shell

Mitglied: yakazaa

yakazaa (Level 1) - Jetzt verbinden

22.01.2015, aktualisiert 23.01.2015, 1222 Aufrufe, 2 Kommentare, 1 Danke

Hallo zusammen,

ich muss eine CSV Datei in ein Programm importieren, die im Prinzip SO aussieht:


01.
H203000;;Überschrift 1 
02.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (beliebig viele Simikolons (oder Simikolonne? :D)) 
03.
1.0 Artikelgruppe 1 
04.
1.0.1 Artikelgruppen Unterkategorie 1 
05.
H203010;;H203010 Artikel 1;;;;;12,60;;; 
06.
H203020;;H203020 Artikel 2;;;;24,20;;;; 
07.
H203030;;H203030 Artikel 3;;;24,20;;;;; 
08.
 
09.
1.0.2 Artikelgruppen Unterkategorie 2 
10.
H203000;;Überschrift 2 
11.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (wieder beliebig viele Simikolonien..) 
12.
H204010;;H204010 Artikel 1;;;;;12,60;;; 
13.
H204020;;H204020 Artikel 2;;;;24,20;;;; 
14.
H204030;;H204030 Artikel 3;;;24,20;;;;;
Soweit so schlecht, denn in meinem Programm sollen hinterher nur die Zeilen übernommen werden, in denen auch tatsächlich Artikel stehen - keine Überschriften oder sonstiger Murks.

Zu allem Überfluss hab ich davon aktuell 5, bald aber noch mehr Dateien, in denen die Artikelnummern mal wie hier Hxxxxx sind, dann mal wieder Sxxxxx, usw.

Jetzt soll ein BATCH Script für mich aufräumen, daher meine Idee:

01.
@ECHO OFF 
02.
 
03.
SET Art_Nr_Prefix=H 
04.
SET FILENAME=preise_a 
05.
 
06.
FINDSTR /c:"^%Art_Nr_Prefix%.......%Art_Nr_Prefix%" /g:"%FILENAME%.txt">%FILENAME%_sauber.csv
Klappt aber nicht, kommt nur eine Fehlermeldung "FINDSTR: Cannot read strings from preise_a.txt"
Wo liegt mein Fehler?
Mitglied: bastla
LÖSUNG 22.01.2015, aktualisiert 23.01.2015
Hallo yakazaa!

Eher so:
01.
@ECHO OFF & setlocal 
02.
 
03.
SET "Art_Nr_Prefix=H" 
04.
SET "FILENAME=preise_a" 
05.
 
06.
FINDSTR "^%Art_Nr_Prefix%......;;%Art_Nr_Prefix%" "%FILENAME%.txt">"%FILENAME%_sauber.csv"
oder mit Zeile 6
FINDSTR "^%Art_Nr_Prefix%[0-9][0-9][0-9][0-9][0-9][0-9];;%Art_Nr_Prefix%" "%FILENAME%.txt">"%FILENAME%_sauber.csv"
[Edit]
Wenn Du tatsächlich verschiedene Prefixes berücksichtigen musst und gleich alle Dateien eines Ordners verarbeiten willst, würde ich eine Datei "D:\Artikel.pre" mit dem Inhalt
01.
^H......;;H 
02.
^S......;;S 
03.
^X......;;X 
04.
^Y......;;Y
erstellen und etwa folgenden (ungetesteten) Code verwenden:
01.
@echo off & setlocal 
02.
set "Ordner=D:\Artikeldaten" 
03.
 
04.
pushd "%Ordner%" 
05.
for /f "delims=" %%i in ('dir /b/a-d *.txt') do findstr /g:"D:\Artikel.pre" "%%i">"%%~ni_sauber.csv" 
06.
popd
[/Edit]

Grüße
bastla

P.S.:
beliebig viele Simikolons (oder Simikolonne? :D)
Eins von der Sorte ist jedenfalls sicher ein Semikolon ...
Bitte warten ..
Mitglied: yakazaa
23.01.2015 um 09:24 Uhr
Zitat von bastla:
01.
... 
02.
>  
03.
> FINDSTR "^%Art_Nr_Prefix%......;;%Art_Nr_Prefix%" "%FILENAME%.txt">"%FILENAME%_sauber.csv" 
04.
> 

Perfekt, tut genau was es soll!!
Vielen, vielen Dank!!

Wenn Du tatsächlich verschiedene Prefixes berücksichtigen musst und gleich alle Dateien eines Ordners verarbeiten
willst, würde ich eine Datei "D:\Artikel.pre" mit dem Inhalt
01.
^H......;;H 
02.
> ^S......;;S 
03.
> ^X......;;X 
04.
> ^Y......;;Y 
05.
> 
erstellen und etwa folgenden (ungetesteten) Code verwenden:
01.
@echo off & setlocal 
02.
> set "Ordner=D:\Artikeldaten" 
03.
>  
04.
> pushd "%Ordner%" 
05.
> for /f "delims=" %%i in ('dir /b/a-d *.txt') do findstr /g:"D:\Artikel.pre" 
06.
> "%%i">"%%~ni_sauber.csv" 
07.
> popd 
08.
> 

Sowas hatte ich zuerst auch überlegt, allerdings bin ich dafür zu blöd gewesen ;)
Ich muss die Dateien vorher allerdings eh sichten, da ist das kein Problem eben das Prefix anzupasssen - und dafür verstehe ich auch, was mein Script macht ;)

P.S.:
> beliebig viele Simikolons (oder Simikolonne? :D)
Eins von der Sorte ist jedenfalls sicher ein Semikolon ...
Wie recht du hast, wieso kann ich mir das einfach nicht merken?
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateien aus CSV mit Batch suchen (5)

Frage von joes1609 zum Thema Batch & Shell ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
XML in CSV bat batch powershell (9)

Frage von nolle99 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Neue Wissensbeiträge
Entwicklung

Exploit Development

Anleitung von burhanudinn123 zum Thema Entwicklung ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(1)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
Leiten "dumme" Switches VLAN-Tags mit durch? (17)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

E-Business
Wo tragt ihr eure privaten Termine ein? (14)

Frage von honeybee zum Thema E-Business ...

Batch & Shell
Batch zum suchen und verschieben von Verknüpfungen (12)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...