Datei in jeweils xxx Zeilen splitten?

Diskutiere Datei in jeweils xxx Zeilen splitten? im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hi Community! Ich habe eine 500MB-Datei und moechte diese in jeweils ~1000-Zeilen-Dateien aufteilen. Da ich mich allerdings erst seit wenigen...

  1. #1 fabian-k, 09.08.2007
    fabian-k

    fabian-k Grünschnabel

    Dabei seit:
    03.08.2007
    Beiträge:
    3
    Zustimmungen:
    0
    Hi Community!

    Ich habe eine 500MB-Datei und moechte diese in jeweils ~1000-Zeilen-Dateien aufteilen. Da ich mich allerdings erst seit wenigen Tagen mit Shell-Skripten beschaeftige, habe ich absolut keine Ahnung wie das funktionieren soll :-(

    Koennt Ihr mir vielleicht etwas weiterhelfen???

    Ich habe bereits mehrfach gegooglet (etc.), aber ich habe immer nur Anleitungen zum Splitten in vorgegebene Dateigroessen gefunden, aber nicht in Zeilenanzahlen.

    Hintergrund:
    Ich habe, wie erwaehnt, eine ~500MB große Datei. Dabei handelt es sich um eine .csv-Datei. Diese soll in Microsoft Excel (und/oder OpenOffice) importiert werden. Da M$ Excel jedoch nur maximal 65536 Zeilen anzeigen kann, muss ich diese .csv-Datei auf mehrere Dateien aufteilen. (1000 Zeilen sind nur ein Beispiel. Ich wuerde dann jeweils 65000-Zeilen-Dateien erstellen lassen...)

    mfg
    n00b:fabian
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 madfool, 09.08.2007
    madfool

    madfool Tripel-As

    Dabei seit:
    12.08.2004
    Beiträge:
    192
    Zustimmungen:
    0
  4. #3 Fallout, 09.08.2007
    Zuletzt bearbeitet: 09.08.2007
    Fallout

    Fallout Doppel-As

    Dabei seit:
    02.03.2007
    Beiträge:
    120
    Zustimmungen:
    0
    Hi,

    na was könnte zum Splitten denn naheliegender sein als split? ;-)

    Code:
    split -l 1000 inputfile outputpart_
    Teilt inputfile in 1000er Zeilen und nennt sie outputpart_aa, -ab, -ac, usw.

    Gruß Daniel
     
  5. #4 fabian-k, 09.08.2007
    fabian-k

    fabian-k Grünschnabel

    Dabei seit:
    03.08.2007
    Beiträge:
    3
    Zustimmungen:
    0
    Hatte ich auch schon probiert.
    Aber damit erhalte ich ja dann in der Ausgabe keine .csv-Dateien ;-)
    (Ich muesste alle nachtraeglich umbenennen.. Bloed :( Vor allem weil es sein kann, dass es im Endeffekt 200-Zeilen-Dateien werden sollen, was bei 200.000 Zeilen [und mehr..] eine ziemlich langandauernde Aufgabe waere...)


    Ich habe folgendes versucht:
    Code:
    OUT=0
    DATA=1
    while read LINE;
    do
    	if [ $DATA -ne "65000" ] 
    		then
    			$LINE > $OUT.txt 
    			$DATA=`expr $DATA + 1`
    		else
    			$OUT=`expr $OUT + 1`
    			$DATA=1
    	fi
    done < input.csv
    Fehlermeldung:
    Irgendwas laeuft da noch nicht rund ?(
     
  6. #5 Fallout, 09.08.2007
    Fallout

    Fallout Doppel-As

    Dabei seit:
    02.03.2007
    Beiträge:
    120
    Zustimmungen:
    0
    Hi,

    leider bietet split keine alternativen Suffixe an. Aber das ganze läßt sich ja auch mit Hilfe von find oder ähnlichen Werkzeugen zurechtbiegen:

    Code:
    find . -name 'outputpart_*' -exec mv "{}" "{}.csv" \;
    Gruß Daniel
     
  7. #6 smg, 09.08.2007
    Zuletzt bearbeitet: 09.08.2007
    smg

    smg Regex Fetischist

    Dabei seit:
    20.05.2007
    Beiträge:
    195
    Zustimmungen:
    0
    Ort:
    /home/stephan/
    Was ist da das Problem?
    Code:
    split -l 1000 inputfile outputpart_
    for file in outputpart_*; do mv "$file" "${file}.csv"; done
    Inperformant bei vielen Dateien, nimm xargs!

    Ein Bashscript, musst nur irgendwohin kopieren und Variablen füllen im Script.
     
  8. #7 fabian-k, 09.08.2007
    fabian-k

    fabian-k Grünschnabel

    Dabei seit:
    03.08.2007
    Beiträge:
    3
    Zustimmungen:
    0
    Ah, ihr seid die Besten!! ;-)

    Vielen Dank, es hat alles funktioniert.
    (Habe es aus performancegruenden [Live-Server] mit smg's Vorschlag durchgefuehrt.)

    mfg&danke@all
    fabian
     
Thema: Datei in jeweils xxx Zeilen splitten?
Besucher kamen mit folgenden Suchen
  1. große csv dateien splitten

    ,
  2. textdatei splitten notepad

    ,
  3. csv in mehrere dateien aufteilen

    ,
  4. Zeile teilen linux,
  5. linux textdatei splitten automatisch,
  6. notepad datei splitten,
  7. linux dateien splitten,
  8. tia portal ausgaben auf 2 zeilen aufteilen ,
  9. linux zeilen zerlegen,
  10. textfile an zeile splitten,
  11. excel datei zweiteilen command line,
  12. textdatei nach 100 zeilen aufteilen,
  13. dateien splitten linux,
  14. debian große datei aufteilen,
  15. power shell datei nach anzahl Zeilen teilen,
  16. text datei nach zeilen aufteilen,
  17. große csv splitten,
  18. unix große dateien splitten,
  19. datei split bash script,
  20. linux zeile splitten,
  21. unix datei in zeilen zerlegen,
  22. split textdatei zeilen
Die Seite wird geladen...

Datei in jeweils xxx Zeilen splitten? - Ähnliche Themen

  1. Wie kann ich pro Aufruf die jeweils nächste Zeile einer Datei auslesen?

    Wie kann ich pro Aufruf die jeweils nächste Zeile einer Datei auslesen?: Hallo zusammen, ich hoffe ihr könnt mir helfen. Und zwar bin ich auf der Suche nach einer Möglichkeit, wie man Zeilenweise aus einer Datei...
  2. mehrere Textdateien gleichzeitig öffnen.

    mehrere Textdateien gleichzeitig öffnen.: Hallo Es geht um das editieren mehrerer Textdateien gleichzeitig. Diese kann man natürlich in einem Texteditor öffnen. Mein Problem ist, dass die...
  3. wget: Lädt bestimmte Dateitypen nicht

    wget: Lädt bestimmte Dateitypen nicht: Hallo zusammen, ich habe ein Problem mit wget beim Erstellen eines Mirrors. Bei bestimmten Dateitypen werden die Dateien nicht geladen, sondern...
  4. Debian erlaubt Booten vom F2FS-Dateisystem

    Debian erlaubt Booten vom F2FS-Dateisystem: Debian-Entwickler Roman Perier arbeitet an der Umsetzung der Unterstützung des Dateisystems F2FS in GRUB und Initramfs, um der Distribution das...
  5. Dateisystem Reiser5 soll Skalierbarkeit und Effizienz steigern

    Dateisystem Reiser5 soll Skalierbarkeit und Effizienz steigern: Reiser5 soll als Nachfolger des Dateisystems Reiser4 erhebliche Geschwindigkeitssteigerungen bringen. Möglich werden soll das durch die Nutzung...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden