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, 1192 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 Doppelte Dateneinträge per Batch aus Datei löschen? HILFE (7)

Frage von freshman2017 zum Thema Batch & Shell ...

Datenbanken
Access 2016 vertauscht Monat und Tag in meiner CSV Datei (1)

Frage von iGordon zum Thema Datenbanken ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(1)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (15)

Frage von marshall75000 zum Thema Router & Routing ...

Microsoft Office
Saubere HTML aus Word-Dokument (15)

Frage von peterpa zum Thema Microsoft Office ...

Hosting & Housing
gelöst Webserver bei WIX, aber DNS Server wo anders (9)

Frage von laster zum Thema Hosting & Housing ...