Textdatei mit 219000 Einträgen in viele Textdateien mit je 500 Einträgen aufteilen.

Dazu fällt mir irgendwie nix ein.

Wenn du dich mit dem Terminal bissel auskennst, dann nimm doch mal bei dem .sh Script die # vor dem set -x weg und lass das Script im Terminal laufen. Musst aber gleich den Dateinamen mit übergeben. Also so aufrufen:
Code:
./splitInItems.sh Quelldatei.txt
Sofern die Quelldatei im gleichen Ordner ist.
Nimm eine Datei mit wenig Einträgen.
Nun bekommst du den kompletten Ablauf des Scripts.
Poste diesen mal oder schick mir deine Monsterdatei und ich mach dir dat :D

Ok hier der Ablauf:
Code:
+ FILE=SplitScript/test.rtf
+ AbzahlEintraege=10
+ mkdir -p Splitted
+ index=0
+ filenum=0
+ read line
++ echo '{rtf1ansiansicpg1252cocoartf1038cocoasubrtf320'
++ cut -c 1
+ '[' '{' == '>' ']'
+ echo '{rtf1ansiansicpg1252cocoartf1038cocoasubrtf320'
+ read line
++ echo '{fonttblf0fnilfcharset0' 'Verdana;}'
++ cut -c 1
+ '[' '{' == '>' ']'
+ echo '{fonttblf0fnilfcharset0 Verdana;}'
+ read line
++ echo '{colortbl;red255green255blue255;red250green250blue250;red250green251blue254;}'
++ cut -c 1
+ '[' '{' == '>' ']'
+ echo '{colortbl;red255green255blue255;red250green250blue250;red250green251blue254;}'
+ read line
++ echo paperw11900paperh16840margl1440margr1440vieww9000viewh8400viewkind0
++ cut -c 1
+ '[' p == '>' ']'
+ echo paperw11900paperh16840margl1440margr1440vieww9000viewh8400viewkind0
+ read line
++ echo deftab720
++ cut -c 1
+ '[' d == '>' ']'
+ echo deftab720
+ read line
++ echo
++ cut -c 1
+ '[' == '>' ']'
SplitScript/splitInItems.sh: line 19: [: ==: unary operator expected
+ echo ''
+ read line
++ echo itap1trowd taflags0 trgaph108trleft-108 trbrdrtbrdrnil trbrdrlbrdrnil trbrdrtbrdrnil trbrdrrbrdrnil
++ cut -c 1
+ '[' i == '>' ']'
+ echo 'itap1trowd taflags0 trgaph108trleft-108 trbrdrtbrdrnil trbrdrlbrdrnil trbrdrtbrdrnil trbrdrrbrdrnil'
+ read line
++ echo clvertalt clcbpat2 clwWidth14960clftsWidth3 clmart10 clmarl10 clmarb10 clmarr10 clbrdrtbrdrnil clbrdrlbrdrnil clbrdrbbrdrnil clbrdrrbrdrsbrdrw20brdrcf3 clpadt120 clpadl120 clpadb120 clpadr120 gaphcellx8640
++ cut -c 1
+ '[' c == '>' ']'
+ echo 'clvertalt clcbpat2 clwWidth14960clftsWidth3 clmart10 clmarl10 clmarb10 clmarr10 clbrdrtbrdrnil clbrdrlbrdrnil clbrdrbbrdrnil clbrdrrbrdrsbrdrw20brdrcf3 clpadt120 clpadl120 clpadb120 clpadr120 gaphcellx8640'
+ read line
++ echo pardintblitap1pardeftab720qlqnatural
++ cut -c 1
+ '[' p == '>' ']'
+ echo pardintblitap1pardeftab720qlqnatural
+ read line
++ echo
++ cut -c 1
+ '[' == '>' ']'
SplitScript/splitInItems.sh: line 19: [: ==: unary operator expected
+ echo ''
+ read line
++ cut -c 1
++ echo f0fs26 cf0 '>GJIAC8U01BLO0K' length=34 xy=0540_0082 region=1 'run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiACTGTACTyupoGyu>GJIAC8U01AJPQV' length=40 xy=0107_1669 region=1 'run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGCAACACAyupoCiiyzyzghi>GJIAC8U01BLVBV' length=94 xy=0542_0073 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiGyupoGTiiTGGTCyzyzTGCTCAyuGyuGC 'poGyzyzTCCGTCTyuiiGpoiiTyzTCAAiiyuAyzyzpoyzT>GJIAC8U01BMEAN' length=106 xy=0548_0077 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiyzyuTyuACTAyuTGACAyuCTGyzAyzpoG 'AAyuTiiGTATyuyuTAAACAiiTyziiCTGiipoGpoyzyuGCCAAyuTGiiGTC>GJIAC8U01BN5IB' length=34 xy=0568_0081 region=1 'run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiCyzyzGTyzTNpoii>GJIAC8U01AJNAJ' length=95 xy=0106_2585 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiyuGCAyzyuAiiAyzCAACyzCyuGCACAAyu 'GCyzGyzCAAGCTGyzGTyuTACTACAghiGTCTCpoyzACACyz>GJIAC8U01AJMQF' length=46 xy=0106_1861 region=1 'run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGyzAyzGACCAyuACTGTGyuTCpoCyu>GJIAC8U01B1YZP' length=129 xy=0725_1747 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiCyzCAyuAyupoGAyuAyuiiyzGTyzyzGTG yuAyuyziiAGACyziiTGTiiTCiiyuAyuiiGiiGyzyzGGAyuyzGAyuCyziiTyz 'ghiGTCTCTATACACyzCT>GJIAC8U01AJVPR' length=60 xy=0109_1213 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiCACyuGCAyuGiiGGTiiTGGCiiTghiCiiA 'AAyughiyzC>GJIAC8U01BMEAJ' length=39 xy=0548_0073 region=1 'run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiGTCTAACAyzGGyzpoGpoC>GJIAC8U01BV8J0' length=38 xy=0660_0446 region=1 'run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGTyzCTyzGiiiiACiiCyz>GJIAC8U01BISP3' length=44 xy=0507_0089 region=1 'run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiiiGCACyuGCTGTGTyuTyzCACTyu>GJIAC8U01AOJTY' length=43 xy=0162_2004 region=1 'run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGyzyuiiyzTCpoGACACTyzGACA>GJIAC8U01B9LXC' length=66 xy=0812_1710 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiyzyzACAiiCAiiyzyuTyuAiiTyzGGAyuT 'yuAyuTyuACGTAACC>GJIAC8U01BS5OO' length=88 xy=0625_0118 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiGCyuTGCTGyuiiTCACTyuiiTGpoCyzTy 'zyupoAyziiyuiiyuyuyzGAyuGAyupoyziipoGA>GJIAC8U01BMQyu' length=122 xy=0552_0083 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiyuyuCACACTyuGyuGCAyzGyzTyuyzTii TyuAyuyzyuGyuyuTAyuyupoCiiyuTAyzACTyuACyzyuGTCAyuACACiiyuAAC 'iiGTCyuTyzpo>GJIAC8U01BWS38' length=51 xy=0666_2518 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGCTCTGTCAyuGCAACyzAyuGyuTCTAiipo 'A>GJIAC8U01BSGFE' length=110 xy=0617_0152 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiCyuTCyuGCyzyzyuGACAiiTyziiyzyzy 'zyuAAyuCTCGGTyuCCyzTGCAiiiiyzGyzTCyuCiiTyughiCTGpoCACACAyzyz>GJIAC8U01ALKRX' length=30 xy=0128_2523 region=1 'run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGiiCTGCACACA>GJIAC8U01BBZU0' length=36 xy=0429_2234 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiyzGCTyuiiyzTAyuACTcell lastrowrow
+ '[' f == '>' ']'
+ echo 'f0fs26 cf0 >GJIAC8U01BLO0K length=34 xy=0540_0082 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiACTGTACTyupoGyu>GJIAC8U01AJPQV length=40 xy=0107_1669 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGCAACACAyupoCiiyzyzghi>GJIAC8U01BLVBV length=94 xy=0542_0073 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiGyupoGTiiTGGTCyzyzTGCTCAyuGyuGC poGyzyzTCCGTCTyuiiGpoiiTyzTCAAiiyuAyzyzpoyzT>GJIAC8U01BMEAN length=106 xy=0548_0077 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiyzyuTyuACTAyuTGACAyuCTGyzAyzpoG AAyuTiiGTATyuyuTAAACAiiTyziiCTGiipoGpoyzyuGCCAAyuTGiiGTC>GJIAC8U01BN5IB length=34 xy=0568_0081 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiCyzyzGTyzTNpoii>GJIAC8U01AJNAJ length=95 xy=0106_2585 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiyuGCAyzyuAiiAyzCAACyzCyuGCACAAyu GCyzGyzCAAGCTGyzGTyuTACTACAghiGTCTCpoyzACACyz>GJIAC8U01AJMQF length=46 xy=0106_1861 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGyzAyzGACCAyuACTGTGyuTCpoCyu>GJIAC8U01B1YZP length=129 xy=0725_1747 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiCyzCAyuAyupoGAyuAyuiiyzGTyzyzGTG yuAyuyziiAGACyziiTGTiiTCiiyuAyuiiGiiGyzyzGGAyuyzGAyuCyziiTyz ghiGTCTCTATACACyzCT>GJIAC8U01AJVPR length=60 xy=0109_1213 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiCACyuGCAyuGiiGGTiiTGGCiiTghiCiiA AAyughiyzC>GJIAC8U01BMEAJ length=39 xy=0548_0073 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiGTCTAACAyzGGyzpoGpoC>GJIAC8U01BV8J0 length=38 xy=0660_0446 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGTyzCTyzGiiiiACiiCyz>GJIAC8U01BISP3 length=44 xy=0507_0089 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiiiGCACyuGCTGTGTyuTyzCACTyu>GJIAC8U01AOJTY length=43 xy=0162_2004 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGyzyuiiyzTCpoGACACTyzGACA>GJIAC8U01B9LXC length=66 xy=0812_1710 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiyzyzACAiiCAiiyzyuTyuAiiTyzGGAyuT yuAyuTyuACGTAACC>GJIAC8U01BS5OO length=88 xy=0625_0118 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiGCyuTGCTGyuiiTCACTyuiiTGpoCyzTy zyupoAyziiyuiiyuyuyzGAyuGAyupoyziipoGA>GJIAC8U01BMQyu length=122 xy=0552_0083 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiyuyuCACACTyuGyuGCAyzGyzTyuyzTii TyuAyuyzyuGyuyuTAyuyupoCiiyuTAyzACTyuACyzyuGTCAyuACACiiyuAAC iiGTCyuTyzpo>GJIAC8U01BWS38 length=51 xy=0666_2518 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGCTCTGTCAyuGCAACyzAyuGyuTCTAiipo A>GJIAC8U01BSGFE length=110 xy=0617_0152 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyzAiiiiACiiCyuTCyuGCyzyzyuGACAiiTyziiyzyzy zyuAAyuCTCGGTyuCCyzTGCAiiiiyzGyzTCyuCiiTyughiCTGpoCACACAyzyz>GJIAC8U01ALKRX length=30 xy=0128_2523 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiGiiCTGCACACA>GJIAC8U01BBZU0 length=36 xy=0429_2234 region=1 run=R_2010_06_26_07_42_34_iiyzGTGTyziiiiACiiyzGCTyuiiyzTAyuACTcell lastrowrow'
+ read line
karposej:~ karpose$
 
Das ist doch aber schon wieder ne formatierte Textdatei. Die muss wie ich schon gesagt habe, im reinen Text Format vorliegen.

Befinden sich in deiner großen Datei auch Leerzeilen?
 
Poste diesen mal oder schick mir deine Monsterdatei und ich mach dir dat :D

Hi du :)
Würdest du das wirklich tun? Wenn ja dann schick mir kurz ne PN und dann können wir abklären, wie ich dir die 60 mb schicken kann :)

Wär super nett!
 
Das ist doch aber schon wieder ne formatierte Textdatei. Die muss wie ich schon gesagt habe, im reinen Text Format vorliegen.

Befinden sich in deiner großen Datei auch Leerzeilen?


Hoi.

ENDLICH (!!!) habe ich verstanden was du meinst mit dem formatierten und reinen Text. Es klappt nur, wenn der Text unformatiert ist. Und dann klappt dein SplitScript perfekt!

Jedoch hab ich ein wenig rumgespielt und seit heute Mittag im Zug erscheint folgende Nachricht, wenn ich versuche SplitScript auszuführen:


./splitInItems.sh: line 30: $FILE: ambiguous redirect


Was hat das zu bedeuten?
 
Bei Bedarf hätte ich auch noch eine Lösung, allerdings für Mathematica. Wenn du dir also den Mathematica Player von www.wolfram.com besorgst, kannst du das angehängte Skript (im Zip-Ordner) ausführen. Dazu muss die Ausgangsdatei (die Textdatei mit den 219000 Einträgen) in dem Heimatverzeichnis deines Benutzers platziert werden (also in /User/Benutzername) und in Test.txt umbenannt werden. Als Ergebnis erhältst du dann in deinem Heimatverzeichnis Dateien mit dem Namen Test<fortaufende_Nummer>.txt, die jeweils 500 Einträge enthalten. Ansonsten müsstest du mir die Datei zukommen lassen, ich würde dann das Skript durchlaufen lassen.

Edit: Ich sehe gerade, dass die freie Version des Mathematica Players hierfür nicht reicht. Also bleibt wohl nur mein Angebot im letzten Satz.
 

Anhänge

  • Split.nb.zip
    1,8 KB · Aufrufe: 56
Zuletzt bearbeitet:
./splitInItems.sh: line 30: $FILE: ambiguous redirect

Leerzeichen im Dateinamen?
Das Variablen-Quoting im Script ist etwas "gemischt".

Mach vlt. mal bei $FILE ein ${FILE}
und bei beiden $line jeweils ein ${line}
 
Leerzeichen im Dateinamen?
Das Variablen-Quoting im Script ist etwas "gemischt".

Mach vlt. mal bei $FILE ein ${FILE}
und bei beiden $line jeweils ein ${line}

Ne immer noch die gleiche Fehlermeldung: ./splitInItems.sh: line 30: ${FILE}: ambiguous redirect
Komisch, der Fehler tritt erst seit gestern auf, als ich das Script mit 50000 Einträgen pro Datei laufen lassen wollte.
:confused:
 
Funktioniert es den wenn du die Anzahl der Einträge wieder runterschraubst auf 1000 oder so?

Ich hätte jetzt auch wie olivetti auf Leerzeichen im Pfad gesetzt.

Einfach mal deine große Datei auf dem Desktop schieben, dann sollten sich keine Leerzeichen im Pfad befinden.

P.S. 50000 Einträge bekommst aber bei deinen 200000 auch schnell per Hand gesplittet sofern du die Zeilennummer eingeblendet hast.
 
Funktioniert es den wenn du die Anzahl der Einträge wieder runterschraubst auf 1000 oder so?

Ich hätte jetzt auch wie olivetti auf Leerzeichen im Pfad gesetzt.

Einfach mal deine große Datei auf dem Desktop schieben, dann sollten sich keine Leerzeichen im Pfad befinden.

P.S. 50000 Einträge bekommst aber bei deinen 200000 auch schnell per Hand gesplittet sofern du die Zeilennummer eingeblendet hast.

Nein selbst wenn ich die Anzahl wieder herunterschraub bleibt das Problem.
:confused:
Das mit dem Pfad werd ich gleich mal ausprobieren.
Und das mit den 50000 Einträgen hab ich nur so ausprobiert, wird man doch mal machen dürfen ... :mad:

;)
 
Funktioniert es den wenn du die Anzahl der Einträge wieder runterschraubst auf 1000 oder so?

Ich hätte jetzt auch wie olivetti auf Leerzeichen im Pfad gesetzt.

Einfach mal deine große Datei auf dem Desktop schieben, dann sollten sich keine Leerzeichen im Pfad befinden.

P.S. 50000 Einträge bekommst aber bei deinen 200000 auch schnell per Hand gesplittet sofern du die Zeilennummer eingeblendet hast.




Jetzt endlich läuft dein Script wie am Schnürchen!!! Es war der Pfad...

Super! Vielen vielen vielen Dank!!!!!!!!:cake:

Vielen Dank an alle, die hier geholfen haben, wirklich Spitze!
 
Zurück
Oben Unten