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. #2 madfool, 09.08.2007
    madfool

    madfool Tripel-As

    Dabei seit:
    12.08.2004
    Beiträge:
    192
    Zustimmungen:
    0
  3. #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
     
  4. #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 ?(
     
  5. #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
     
  6. #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.
     
  7. #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. textfile an zeile splitten

    ,
  2. excel datei zweiteilen command line

    ,
  3. textdatei nach 100 zeilen aufteilen

    ,
  4. dateien splitten linux,
  5. debian große datei aufteilen,
  6. power shell datei nach anzahl Zeilen teilen,
  7. text datei nach zeilen aufteilen,
  8. große csv splitten,
  9. unix große dateien splitten,
  10. datei split bash script,
  11. linux zeile splitten,
  12. unix datei in zeilen zerlegen,
  13. 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. Anlage einer SWAP-Datei unter CentOS 7 funktioniert nicht

    Anlage einer SWAP-Datei unter CentOS 7 funktioniert nicht: Hallo zusammen, ich verwende einen vServer von Strato (Linux V30) mit CentOS 7 64bit. Hier wollte ich nun einen SWAP-Speicher mit 8GB anlegen -...
  3. Dateiinhalt verdoppeln

    Dateiinhalt verdoppeln: Hallo, ich möchte den Inhalt einer Datei verdoppeln, Kopf- und Endesatz ausgenommen. Danach muss im Endesatz die Datensatzanzahl angepasst werden...
  4. Dateien in Unix finden, die mehrere Strings beinhalten

    Dateien in Unix finden, die mehrere Strings beinhalten: Hallo liebe Leute, ich versuche über die Shell unter Unix alle Dateien ausfindig zu machen, die sowohl den SuchstringA als auch den SuchstringB...
  5. Textdatei filtern und löschen mit grep /sed

    Textdatei filtern und löschen mit grep /sed: Guten morgen liebe Forenmitglieder, da ich etliche Jahre in Sachen Linux pausiert habe und nun wegen beruflichem Wechsel wieder dort einsteige...