Text absatzweise Teilen

  1. Yoda

    Yoda Thread StarterMacUser Mitglied

    Mitglied seit:
    29.08.2002
    Beiträge:
    1.750
    Zustimmungen:
    2
    Hallo

    Kennt jemand von euch eine Möglichkeit wie ich einen langen Text absatzweise in einzelne Files Teilen kann?

    ev mit dem Automator

    was noch ideal wäre ist, wenn dann der Filename die erste Zeile des Absatz sein würde.

    danke

    Yoda
     
    Yoda, 07.04.2006
  2. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    Das könnte man relativ leicht mit einem Skript realisieren z.B. in Perl oder mit awk.
    Die Frage, die sich stellt, ist, wie denn ein Absatz erkannt werden kann.

    Befindet sich zB. nach jedem (!) Absatz (und nur da) eine leere Zeile?
    Oder kann man Absätze anhand eines anderen Kriteriums eindeutig erkennen?

    btw: mit Mac OS X hat Deine Frage ja nun gar nichts zu tun.
    Ich schieb Dich mal ins Unix Forum, weil dort u.a. über Skripte diskutiert wird.
     
    maceis, 07.04.2006
  3. Yoda

    Yoda Thread StarterMacUser Mitglied

    Mitglied seit:
    29.08.2002
    Beiträge:
    1.750
    Zustimmungen:
    2
    ok, danke für deine Hilfe

    ja, die Leerzeile ist nur nach jedem Absatz und nach der ersten Zeile ist ein Return

    im Text selbst sind jeoch auch Returns enthalten - jedoch ohne Leerzeile - also ein Block.

    danke

    Yoda
     
    Yoda, 07.04.2006
  4. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    Okay; folgendes funktioniert:
    Code:
    awk 'BEGIN {RS="";FS="\n"}{outfile=$1; print $0 > outfile}' eintext
    Du gibst das Ganze so im Terminal ein (copy/paste), wobei "eintext" der absolute oder relative Pfad zur Textdatei ist (die übrigens unverändert erhalten bleibt).

    Die Ausgabedateien werden im aktuellen Verzeichnis angelegt.
    Man könnte das aber auch so erweitern, dass diese z.B. in eine bestimmtes Verzeichnis kommen (z.B. in ein bestimmtes Verzeichnis auf dem Schreibtisch).

    Einzige Einschränkung: die jeweils ersten Zeilen der Absätze dürfen keine Sonderzeichen wie z.B. Umlaute enthalten, da sonst die Ausgabedatei nicht angelegt werden kann.

    Wenn Du mit dem Terminal noch nicht zurecht kommst, gib kurz Bescheid.

    HTH
     
    maceis, 07.04.2006
  5. Yoda

    Yoda Thread StarterMacUser Mitglied

    Mitglied seit:
    29.08.2002
    Beiträge:
    1.750
    Zustimmungen:
    2
    danke für deine schnelle Hilfe - ich glaube das mit den Sonderzeichen ist ein Problem:

    die erste Zeile sieht immer in etwas so aus:

    Sonntag, 1. Januar

    und im Absatz habe ich auch dann Punkte, Doppelpunte und Beistriche....

    input record number 1, file /Users/powermac/Desktop/Text.txt
    source line number 1

    gibt es dafür auch eine Lösung?

    Danke

    Yoda
     
    Yoda, 07.04.2006
  6. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    Das ist beides kein Problem.
    Dazu müsste ich einen Teil des Textes sehen, insbesondere die ersten zwei/drei Zeilen.
     
    maceis, 07.04.2006
  7. Yoda

    Yoda Thread StarterMacUser Mitglied

    Mitglied seit:
    29.08.2002
    Beiträge:
    1.750
    Zustimmungen:
    2
    vielen Dank für deine Mühe:

    der Text sieht in etwa so aus:

    Sonntag, 1. Januar
    dann kommt der Text, wie er z.B.: hier angeführt wird (es sind auch Zahlen und Satzzeichen enhalten)
    wie oben ist auch ein Return möglich oder auch so (in der Klammer Text mit Zahlen 13:30) und das geht dann weiter bis zum nächsten Text

    Montag, 2. Januar
    dann kommt der Text, wie er z.B.: hier angeführt wird (es sind auch Zahlen und Satzzeichen enhalten)
    wie oben ist auch ein Return möglich oder auch so (in der Klammer Text mit Zahlen 13:30) und das geht dann weiter bis zum nächsten Text


    reicht dir so etwas?

    danke

    Yoda
     
    Yoda, 07.04.2006
  8. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    Ja, das funktioniert bei mir problemlos; schau:
    Code:
    % ls -l                                      2591 
    total 8
    -rw-r--r--   1 maceis  maceis  701  7 Apr 11:01 eintext
    
    % cat eintext
    erster Absatz
    Hier ist also der - erste Absatz - ; was machen wir mit dem?
    Ich denke, den muss man in eine Datei schreiben.
    Und hier probieren wir die Sache mit den Sonderzeichen: äÄöÖüÜß
    
    Sonntag, 1. Januar
    dann kommt der Text, wie er z.B.: hier angeführt wird (es sind auch Zahlen und Satzzeichen enhalten)
    wie oben ist auch ein Return möglich oder auch so (in der Klammer Text mit Zahlen 13:30) und das geht dann weiter bis zum nächsten Text
    
    Montag, 2. Januar
    dann kommt der Text, wie er z.B.: hier angeführt wird (es sind auch Zahlen und Satzzeichen enhalten)
    wie oben ist auch ein Return möglich oder auch so (in der Klammer Text mit Zahlen 13:30) und das geht dann weiter bis zum nächsten Text
    
    % awk 'BEGIN {RS="";FS="\n"}{outfile=$1; print $0 > outfile}' eintext
    
    % ls -l
    total 32
    -rw-r--r--   1 maceis  maceis  255  7 Apr 11:03 Montag, 2. Januar
    -rw-r--r--   1 maceis  maceis  256  7 Apr 11:03 Sonntag, 1. Januar
    -rw-r--r--   1 maceis  maceis  701  7 Apr 11:01 eintext
    -rw-r--r--   1 maceis  maceis  188  7 Apr 11:03 erster Absatz
    Mach mal folgendes:
    Code:
    head -5 Users/powermac/Desktop/Text.txt
     
    maceis, 07.04.2006
  9. Yoda

    Yoda Thread StarterMacUser Mitglied

    Mitglied seit:
    29.08.2002
    Beiträge:
    1.750
    Zustimmungen:
    2
    komisch, er macht mir keine Files:

    PowerMac:~ powermac$ awk 'BEGIN {RS="";FS="\n"}{outfile=$1; print $0 > outfile}' /Users/powermac/Desktop/Text.txt
    wie oben ist auch ein Return m?glich oder auch so (in der Klammer Text mit Zahlen 13:30) und das geht dann weiter bis zum n?chsten Text
    input record number 1, file /Users/powermac/Desktop/Text.txt
    source line number 1
    PowerMac:~ powermac$ head -5 /Users/powermac/Desktop/Text.txt
    PowerMac:~ powermac$ Return m?glich oder auch so (in der Klammer Text mit Zahlen 13:30) und das geht dann weiter bis zum n?chsten Text
     
    Yoda, 07.04.2006
  10. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    Es sieht so aus, als enthielte die erste nicht leere Zeile Deines Textes Umlaute (... möglich ...)

    Deine Beiträge werden übrigens leichter lesbar, wenn Du Codeteile oder Shellein-/-ausgaben in code Tags packst.
    Code:
    Shelltext[/cod] (hier noch das e anfügen)
     
    maceis, 07.04.2006
Die Seite wird geladen...
Ähnliche Themen - Text absatzweise Teilen
  1. Harry3
    Antworten:
    20
    Aufrufe:
    1.570
  2. lazybaer
    Antworten:
    1
    Aufrufe:
    852
    falkgottschalk
    05.05.2012
  3. AlexZ
    Antworten:
    6
    Aufrufe:
    1.018
  4. Garuda
    Antworten:
    4
    Aufrufe:
    615
    Olivetti
    04.05.2010
  5. _nico
    Antworten:
    19
    Aufrufe:
    5.787