Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Problem mit sed und regexp

  1. #1
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Beiträge
    10

    Question Problem mit sed und regexp

    Hi,
    ich habe ein kleines Problem mit sed und regular expressions.

    export USER=username

    sed 's/\$dummy = [']['];/\$dummy = [']http:\/\/"$USER"\.domain\.org\/~"$USER"\/subdir\/['];/' config.inc.php

    Dieser Ausdruck soll in der Datei "config.inc.php" nach dem Ausdruck "$dummy = '';" suchen und ihn durch den Ausdruck "$dummy = 'http://username.domain.org/~username/subdir/';" ersetzen.
    Allerdings bemängelt sed immer wieder ein fehlendes '.

  2. #2
    Registrierter Benutzer
    Registriert seit
    30.12.2001
    Beiträge
    444
    Code:
    sed -e 's/$debug = ";"/$debug = '\\'http:\\/\\/$USER.domain.org\\/~$USER\\/subdir\\/\\'\;'/' config.inc.php
    Die Slashes müssen doppelt quotiert werden 1x für die Shell und 1x für sed. Das ist immer so 'ne Sache mit dem Shell-Quotings(sogar das Board hier schmeisst das ganze durcheinander). Ein Hochkomma kann anscheinend nur seiner Sonderfunktion beraubt werden wenn es ausserhalb eines Quotings mit einfachem Backslash gequotet wird(Es geht wohl auch irgendwie anders).

  3. #3
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Beiträge
    10
    Original geschrieben von fork
    Code:
    sed -e 's/$debug = ";"/$debug = '\\'http:\\/\\/$USER.domain.org\\/~$USER\\/subdir\\/\\'\;'/' config.inc.php
    Die Slashes müssen doppelt quotiert werden 1x für die Shell und 1x für sed. Das ist immer so 'ne Sache mit dem Shell-Quotings(sogar das Board hier schmeisst das ganze durcheinander). Ein Hochkomma kann anscheinend nur seiner Sonderfunktion beraubt werden wenn es ausserhalb eines Quotings mit einfachem Backslash gequotet wird(Es geht wohl auch irgendwie anders).
    Danke für die schnelle Antwort aber leider mach diese RegExp nicht ganz genau was ich brauche.
    Sie sucht nach dem String $dummy_var = ;
    Sie sollte aber nach $dummy_var = ''; (zwei hochkommas vor dem semi-colon) suchen. Mein Problem ist, dass ich nicht weiss wie ich diese Escapen muss. Folgende Ausrücke haben leider auch nicht zu dem gewünschten Erfolg geführt.
    Code:
    sed -e 's/$dummy_var = '\''\'";"/$dummy_var = '\'http:\\/\\/$USER.domain.org\\/~$USER\\/subdir\\/\'\;'/' config.inc.php
    sed -e 's/$dummy_var = ['][']";"/$dummy_var = '\'http:\\/\\/$USER.domain.org\\/~$USER\\/subdir\\/\'\;'/' config.inc.php

  4. #4

  5. #5
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Beiträge
    10
    Sehr interessante Links aber mein Problem bezieht sich auf die hochkommas. Ich weiss nicht wie ich die Escapen kann.

Lesezeichen

Berechtigungen

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