Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Per Batch CSV Datei zeilenweise bereinigen

Frage Entwicklung Batch & Shell

Mitglied: yakazaa

yakazaa (Level 1) - Jetzt verbinden

22.01.2015, aktualisiert 23.01.2015, 1245 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
Viren und Trojaner

Link: Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Seekrank bei Windows 10 (18)

Frage von zauberer123 zum Thema Windows 10 ...

Windows Server
Frage zu Server Rack (10)

Frage von rainergugus zum Thema Windows Server ...

Switche und Hubs
gelöst VLAN für Gäste WLAN einrichten über FritzBox und Switch (10)

Frage von Elo-14 zum Thema Switche und Hubs ...