Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Datei neu aufbauen

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.03.2006
    Beiträge
    180

    Datei neu aufbauen

    Hallo,

    ich möchte eine Datei folgenden Inhalts

    abc
    def
    @@NEWLINE@@
    ghi
    jkl
    mno
    @@NEWLINE@@
    xyz

    mit Hilfe von SED umbauen zu:

    abcdef
    ghijklmno
    xyz

    Mit Linux-Bordmitteln wie awk geht das, ich möchte eine Lösung mit SED. Meine Versuche mit den sed-Befehlen H und G und auch p an geeigneter Stelle führen nicht zum gewünschten Ergebnis, da H und G jeweils ein \n einfügen, das ich nicht benötige.

    Die Zeichenkette "@@NEWLINE@@" soll einen Zeilenvorschub in der zu erstellenden Datei bewirken, sie selbst soll nicht in der Ausgabedatei enthalten sein.

    Gibt es überhaupt eine Lösung mit SED?

    Vielen Dank im voraus!

    Gruss
    Dieter

  2. #2
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Code:
    sed -r ':a N ; :b s#(\n?@@NEWLINE@@\n?)#\1#g ; t c ; s#\n##g ; :c ; t a ; s#(\n*@@NEWLINE@@\n*)##g'
    Kleiner Schönheitsfehler: Wenn du mehrere @@NEWLINE@@-Zeilen hast, wird der Zeilenumbruch nach der nächsten Zeile erhalten bleiben, also aus
    Code:
    11111
    @@NEWLINE@@
    @@NEWLINE@@
    2
    22
    @@NEWLINE@@
    3333
    wird
    Code:
    11111
    2
    22
    3333

  3. #3
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    alternativ perl:

    Code:
    perl -pe 'chomp; s/\@\@NEWLINE\@\@/\n/' datei.txt

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.03.2006
    Beiträge
    180
    John,
    msi,

    danke für eure Lösungsvorschläge.

    @John:

    um aufeinanderfolgende @@NEWLINE@@ zu vermeiden, setze ich jeweils eine Zeile, die nur aus einer gesonderten Zeichenkette (z.B. @@NULLSTRING@@) vor die Zeile mit @@NEWLINE@@ und lösche am Ende alle Vorkommnisse dieser gesonderten Zeichenkette.

    Gruss
    Dieter

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •