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 Datei splitten jeweils nach 1000 Zeilen

Mitglied: broholm

broholm (Level 1) - Jetzt verbinden

05.11.2008, aktualisiert 06.11.2008, 8711 Aufrufe, 7 Kommentare

Wahrscheinlich ziemlich einfach für jemanden der sich mit batch Skripten auskennt...

Problem:

Ich habe eine Datei mit > 290 000 Zeilen.
Diese würde ich gerne splitten in kleinere Dateien.

Gesplittet werden soll immer nach 1 000 Zeilen.

Die Dateinamen der entstehenden einzelnen Dateifragmente sollen durchnummmeriert werden.

Ausgangsdatei
--> erzeugte_datei_1
--> erzeugte_datei_2
[...]

Danke für eure Hilfe!
Andi
Mitglied: 71332
05.11.2008 um 18:20 Uhr
wie waer's hiermit (split after X bytes):
http://www.blue-series.de/products/spx/splitting_de.htm

oder mit einem von diesen:
http://www.snapfiles.com/Freeware/downloader/fwfilesplit.html

so long
plague
Bitte warten ..
Mitglied: bastla
05.11.2008 um 18:28 Uhr
Hallo broholm und willkommen im Forum!

Wenn's aber trotzdem mit Bordmitteln sein soll, etwa so:
01.
@echo off & setlocal 
02.
set /a Anzahl=1000 
03.
set /a Nr=1 
04.
set /a Z=0 
05.
 
06.
for /f "delims=" %%i in (D:\Ausgangsdatei.txt) do set "Zeile=%%i" & call :ProcessLine 
07.
goto :eof 
08.
 
09.
:ProcessLine 
10.
>>D:\Temp\erzeugte_datei_%Nr%.txt echo %Zeile% 
11.
set /a Z+=1 
12.
echo %Nr%_%Z% 
13.
if %Z% lss %Anzahl% goto :eof 
14.
set /a Z=0 
15.
set /a Nr+=1 
16.
goto :eof
Hinsichtlich des Formats der Nummerierung habe ich mich an Deine Vorlage gehalten, obwohl ich eher zu einer fixen Länge tendiere und die Dateien daher "erzeugte_datei_0001", "erzeugte_datei_0002" etc benennen würde ...

Grüße
bastla
Bitte warten ..
Mitglied: broholm
06.11.2008 um 08:31 Uhr
Hallo euch beiden, und vielen Dank für die schnellen Antworten.

Batch, also Bordmittel, sollte es schon sein, von daher bastla's Lösung.
Die funktioniert auch einwandfrei, allerdings komme ich nun zu einem neuen Problem...
Innerhalb der Daten können alle möglichen "Sonderzeichen" vorkommen, wie kann ich die
"escapen", bzw. evtl die ganze Zeile automatisch damit mir die batch nicht abbricht?

Beispiel bei der Ausführung der batch:
01.
Der Befehl "CO" ist entweder falsch geschrieben oder 
02.
konnte nicht gefunden werden. 
03.
1_8575 
04.
1_8576 
05.
1_8577 
06.
Der Befehl "Sohn'" ist entweder falsch geschrieben oder 
07.
konnte nicht gefunden werden. 
08.
1_8578 
09.
1_8579 
10.
Der Befehl "Sohn'" ist entweder falsch geschrieben oder 
11.
konnte nicht gefunden werden. 
12.
1_8580 
13.
1_8581 
14.
1_8582 
15.
Der Befehl "#228" ist entweder falsch geschrieben oder 
16.
konnte nicht gefunden werden. 
17.
1_8583 
18.
Der Befehl "auml" ist entweder falsch geschrieben oder 
19.
konnte nicht gefunden werden. 
20.
1_8584
Grüße, Andi
Bitte warten ..
Mitglied: bastla
06.11.2008 um 08:52 Uhr
Hallo broholm!

Füge nach Zeile 9 ein:
set "Zeile=%Zeile:&=^&%"
und das auch analog für "<", ">" und "|".

Wenn Du mir dann allerdings noch erzählst (Beispiel hast Du ja keines geliefert - btw: ist ja immer wieder spannend, sowas im Blindflug machen zu dürfen), dass es auch Zeilen mit einzelnen Anführungszeichen gibt, ändert sich das (Bord-)Mittel der Wahl auf "VBScript" ...

Grüße
bastla
Bitte warten ..
Mitglied: broholm
06.11.2008 um 10:25 Uhr
Hallo bastla,

kurz zum "warum das ganze":
Ich habe einen riesigen dump einer mysql aus einer zeit als mysql noch nicht utf-8 unterstützte. diese dump muss ich abarbeiten und möchte dies daher vorab in kleinere teile splitten per batch.

beispiel aus dem dump:
01.
INSERT INTO trans VALUES (28897,20041028235501,'','tr','\nAn&#305;lmayan ülkelerde'); 
02.
INSERT INTO trans VALUES (28898,20041028235501,'','uk','&#1076;&#1110;&#1081;&#1089;&#1085;&#1072; &#1090;&#1074;&#1082;&#1072;&#1079;&#1072;&#1085;&#1080;&#1093; &#1082;&#1088;&#1072;&#1111;&#1085;.'); 
03.
INSERT INTO trans VALUES (28899,20041028235501,'','hu','A fel nem sorolt országokban a helyi garanciális jogszabályok érvényesek.'); 
04.
INSERT INTO contacts VALUES (9257,20040213092245,'','\\\"Linas\\\"','lt','lt','CD \\\"Linas\\\"','','žio 23','','v&#279;žys','','','','0','101-500',' A \\\"Rag&#279;i\\\"','v&#279;žys',NULL,'on','on',NULL,NULL); 
05.
INSERT INTO contacts VALUES (15531,20040316135757,'','Grakas','lt','lt','CD \\\"B&#363;ta\\\"','','15','7617','Šiai','','','','','500','UAB \\\"Technikonas\\\"','',NULL,'on','on',NULL,NULL);


Aktuell läuft die batch fast perfekt, ich bekomme nur noch einen Fehler bei folgenden Inhalten:

01.
' A \\\"Rag&#279;i\\\"'
oder
01.
'CD \\\"B&#363;ta\\\"'
Dank und Gruß,
Andi
Bitte warten ..
Mitglied: bastla
06.11.2008 um 10:47 Uhr
Hallo broholm!

Mit den beiden dargestellten Zeilen gibt es bei mir kein Problem, es könnten aber noch irgendwelche "nicht-druckbare" Zeichen auf dem Weg von Dir zu mir auf der Strecke geblieben sein - falls Du einen Editor mit Anzeige aller Steuerzeichen oder einen Hex-Editor bei der Hand hast, könntest Du das einmal überprüfen ...

Grüße
bastla
Bitte warten ..
Mitglied: broholm
06.11.2008 um 11:14 Uhr
Hallo bastla,

da hast du recht, mit dem auszug hier, funktioniert es bei mir auch.
Ich werde mal weiterforschen woran das noch liegt.

Hast mir aber super weitergeholfen. Somit werde ich diesen Beitrag mal als gelöst markieren. Den Rest werd ich wohl noch schaffen und hat ja auch nichts mehr mit der batch ansich zu tun.

Vielen Dank nochmals!

Grüße,
Andi
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Duplikate finden Jeweils 2 Zeile
gelöst Frage von TestolinoBatch & Shell4 Kommentare

Hallo Zusammen, ich habe ein text Datei und wurde gern die doppelte Zeile in eine extra .txt Kopieren und ...

XML
XML Datei mit Powershell splitten
gelöst Frage von LianenSchwingerXML2 Kommentare

Hallo, ich habe eine riesige Exportdatei im XML-Format die ich nicht weiterverarbeiten kann. Der Aufbau ist wie folgt: Ich ...

Batch & Shell

Batch: Mehrere .txt Dateien zu einer zusammenfügen, dabei jeweils die erste Zeile löschen

gelöst Frage von v.piepmatzBatch & Shell5 Kommentare

Hallo, ich bin leider kompletter Neueinsteiger bzgl. batch-Dateien, suche jetzt aber eine Möglichkeit mehrere .txt Dateien, welche in einem ...

Entwicklung

Notepad++ Reihenfolge von jeweils 2 Zeilen umkehren

gelöst Frage von maxicoEntwicklung7 Kommentare

Hallo zusammen, ich habe eine unendlich lange .txt Datei vor mir, die nach folgendem Schema aufgebaut ist: Zeile1: Text ...

Neue Wissensbeiträge
Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 11 StundenSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 17 StundenWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 21 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 2 TagenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Heiß diskutierte Inhalte
Batch & Shell
Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen
gelöst Frage von Raven42Batch & Shell36 Kommentare

Hallo zusammen, ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt. ...

C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++34 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

Windows Server
Alten DC entfernen
Frage von smartinoWindows Server24 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...