mehrere Zeilen ersetzen?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Pinky69, 12.04.2007.

  1. #1 Pinky69, 12.04.2007
    Pinky69

    Pinky69 Grünschnabel

    Dabei seit:
    12.04.2007
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo,

    ich bin neu hier und habe mit Unix noch nicht allzuviel Erfahrung, bin aber bestrebt mehr zu lernen.

    Kann ich mit sed auch mehrere Zeilen (zwei aufeinander folgende) durch neue Angaben ersetzen ? Ist eine ASCII-Datei.

    also ungefähr so:
    .
    .
    text1
    text2
    ..
    durch
    .
    .
    textneu1
    textneu2
    .
    .

    PS: ich arbeite mit Solaris10 auf einer Sparc

    Gruß
    Pinky
     
  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. #2 supersucker, 12.04.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    "Gleichzeitig" ersetzen: Nein, sed liest zeilenweise ein.

    Mehrere in einem File: Ja klar, Aber halt zeilenweise.
     
  4. #3 Pinky69, 12.04.2007
    Pinky69

    Pinky69 Grünschnabel

    Dabei seit:
    12.04.2007
    Beiträge:
    2
    Zustimmungen:
    0
    Hmm, schade.

    Habe eben das Problem das text1 nur ersetzt weden darf wenn text2 z.B. xyz heist, also einen bestimmten wert/Inhalt hat.
     
  5. #4 Wolfgang, 12.04.2007
    Zuletzt bearbeitet: 12.04.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Doch das geht.
    sed kennt N;

    Aber Solaris sed ist etwas eigen, was mehrere Befehle und loop betrifft.

    Normalerweise würde ich bis zum Ende immer zwei Zeilen einlesen, im Patternspace die Ersetzung machen und ausgeben.

    Code:
    sed -n '$!N; s/\(.*\)\n\(.*\)/\1neu\n\2neu/g;p'
    
    Das meint:
    Solange nicht Ende, addiere nächste Zeile in Patternspace (N)
    Nun ersetze s/...
    Ausgeben p
    Vermutlich wirst du unter Solaris die Befehle durch mehrere -e hintereinandersetzen müssen.

    Mehr dazu sagt dir deine Manpage.

    Gruß Wolfgang

    Edut:
    sehe gerade deinen Beitrag:
    Dann müsstest du eben vor dem Ersetzen noch eine Bedingung setzen.
    Code:
    /.*xyz/s/.../
    
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema: mehrere Zeilen ersetzen?
Besucher kamen mit folgenden Suchen
  1. sed über mehrere zeilen

Die Seite wird geladen...

mehrere Zeilen ersetzen? - Ähnliche Themen

  1. Text mit mehreren Zeilen und Sonderzeichen ersetzten

    Text mit mehreren Zeilen und Sonderzeichen ersetzten: Hallo zusammen, ich bin in Sachen Programmierung noch relativ neu und frisch unterwegs und bräuchte etwas Unterstützung wenn möglich. Im...
  2. Wie mehrere Zeilen zu einem Befehl verküpfen

    Wie mehrere Zeilen zu einem Befehl verküpfen: Hallo. ich habe eine sehr lange Datei mit so einem ähnlichen Inhalt IMAGE Server01-16_1295668 FRAG 2 22274L FRAG 3 052409 IMAGE...
  3. Text-Variable mit mehreren Zeilen

    Text-Variable mit mehreren Zeilen: Hallo, ich brauche für ein Skript eine Möglichkeit, in eine Textvariable in einer Schleife mehrere Zeilen einzufügen. Nach der Schleife...
  4. Mehrere Zeilen in eine Datei ausgeben

    Mehrere Zeilen in eine Datei ausgeben: Hallo Zusammen, hier meine Anfängerfrage: ich möchte mehrere Zeilen über ein Skript in eine Datei ausgeben. Ich dachte, es ginge ungefähr...
  5. mit sed mehrere Zeilen löschen

    mit sed mehrere Zeilen löschen: Hallo, ich versuche aus einer Datei x Zeilen zu löschen, wobei x durch eine Variable definiert wird. Das Script soll in der BASH unter sun...