split nach zeilen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von belubaba, 21.11.2005.

  1. #1 belubaba, 21.11.2005
    belubaba

    belubaba Tripel-As

    Dabei seit:
    20.09.2005
    Beiträge:
    184
    Zustimmungen:
    0
    Hallo Zusammen,

    ich habe eine Datei die ich alle 5 Zeilen splitten will.

    Da aber unterschiedlich viele bytes in den 5 Zeilen enthalten sein können, kann ich split nicht verwenden.

    Fällt hier jemand eine elegante Lösung ein? :)

    b.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Schau Dir mal csplit an. Auf die Schnelle:

    Code:
    csplit file 5 '{99}'
    Gruss, Phorus
     
  4. #3 Wolfgang, 21.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Spantaner ungetesteter Vorschlag:

    Code:
    perl -ple 'BEGIN { $i=0; } ((($. % 5)==0) or ($i == 0 ))?do{open STDOUT, ">$ARGV.$i";$i++;}:1;' testdatei
    
    
    Probiers aus ;)

    Verbesserungsvorschläge willkommen.:devil:

    Gruß Wolfgang
    @Phorus du bist natürlich kürzer , aber ich liebe es mit perl sowas zu machen. :D
    PS Gleich kommen bestimmt wieder die Tools-Vorschläge. :D :D
     
  5. #4 Wolfgang, 21.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Kleine Anmerkung zu deinem Vorschlag. ;)

    Das funktioniert nur so, wenn die Gesamtzahl ein Vielfaches der zu splittenden Zeilenzahl (hier 5) ist!

    Habe das csplit bisher garnicht gekannt, da ich sowas immer mit perl gemacht habe. :think:

    Muss ich mir mal genauer ansehen, denn selbst mit -k werden die letzten Zeilen geschluckt.
    Das bedeutet, eventuell vorher mit echo -e"\n" auf ein vielfaches bringen innerhalb einer While-Schleife, bis wc-l % 5 0 ergibt.
    Dann wäre perl allerdings doch schneller.:)


    Gruß Wolfgang
     
  6. #5 Xanti, 21.11.2005
    Zuletzt bearbeitet: 21.11.2005
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
     
  7. #6 Wolfgang, 21.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo @Phorus

    Nichts, bzw sie gibt einfach true (unter perl 1=wahr) zurück.
    ;)
    Da die Kurzschreibweise aber immer sowohl für false als auch true eine Anweisung braucht, gebe ich einfach wahr zurück.

    Bei mir schon.
    Ich habe eine Dateimit 1249 Zeilen gesplittet, aber ohne -k brach das ab, und keine daei wurde erzeugt.
    Mit -k fehlten die unvollständigen Zeilen.

    wolle@Nietzsche:/home/wolle/temp$csplit --version
    csplit (coreutils) 5.2.1
    Geschrieben von Stuart Kemp und David MacKenzie.


    Seltsam.
    :think:

    Gruß Wolfgang
     
  8. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Ich nutze hier FreeBSD 6.0. Ich sehe grade, dass ein

    Code:
    split -l 5 file
    ohne Warnungen ebenfalls funktioniert.

    Gruss, Phorus
     
  9. #8 Wolfgang, 21.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo @Phorus
    split -l 5 file
    laüft bei mir auch ;)

    Kannst du mal die Programmversion von deinem verwendeten csplit rüberreichen?

    Bei mir läuft Debian Sarge.

    Gruß Wolfgang
     
  10. #9 Xanti, 21.11.2005
    Zuletzt bearbeitet: 21.11.2005
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Sorry, mit der Versionsnummer kann ich nicht dienen, da es weder einen Versions-Schalter gibt, noch etwas in der man-Seite steht.

    Gruss, Phorus
     
  11. #10 belubaba, 22.11.2005
    belubaba

    belubaba Tripel-As

    Dabei seit:
    20.09.2005
    Beiträge:
    184
    Zustimmungen:
    0
    War ja klar das meine Version des csplit die Option -l nicht unterstützt :)

    Aber die Perl Lösung hat hervorragend funktioniert.

    Vielen Dank für die schnelle Unterstützung, Ihr habt mir stundenlanges copy und pasten erspart ;)

    b.
     
  12. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  13. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    "-l" ist ein split-Schalter, nicht der von csplit.
     
  14. #12 belubaba, 22.11.2005
    belubaba

    belubaba Tripel-As

    Dabei seit:
    20.09.2005
    Beiträge:
    184
    Zustimmungen:
    0
    Hmmm - das erklärt dann wohl auch warum der Schalter bei meinem csplit nicht funktioniert hat :rolleyes:

    thx für den Hinweis
     
Thema:

split nach zeilen

Die Seite wird geladen...

split nach zeilen - Ähnliche Themen

  1. string.split() nach variabler anzahl an leerzeichen

    string.split() nach variabler anzahl an leerzeichen: hallo leute.. ja dumme frau sucht schnelle antwort. ich hab ein kleines problem mit der funktion string.split(). und zwar möchte ich die...
  2. Web-Editor Brackets unterstützt Split-View

    Web-Editor Brackets unterstützt Split-View: Geteilte Ansicht eines Bereiches (»Split-View«) war nach Aussagen der Autoren des freien Web-Editors »Brackets« die am meisten gewünschte...
  3. Split bash string every nth character

    Split bash string every nth character: Hallo Leute, ich versuche schon eine weile einen string der aus ca. 20-30 (variabel) wörter besteht, ihn nach jewals nach dem 8 arg zu splitten...
  4. string.split() splittet zu einzelnen Buchstaben anstatt zu Wörtern

    string.split() splittet zu einzelnen Buchstaben anstatt zu Wörtern: [PYTHON] string.split() splittet zu einzelnen Buchstaben anstatt zu Wörtern Hallo Forum, ich weis ehrlich gesagt nicht mehr weiter. Ich...
  5. Nur etwas kleines :-) splitten

    Nur etwas kleines :-) splitten: Hallo, ist sicherlich einfach aber: $name="Harald Heinz Fritz Müller" Jetzt würde ich gerne nach Nachname und Vorname splitten. Wobei der...