Archiv verlassen und diese Seite im Standarddesign anzeigen : 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 '.
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).
Original geschrieben von fork
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.
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
Das hilft Dir vielleicht weiter:
http://freshmeat.net/projects/visualregexp/?topic_id=45%2C47
http://freshmeat.net/projects/txt2regex/?topic_id=259
http://www.linuxfocus.org/Deutsch/July1998/article53.html
Sehr interessante Links aber mein Problem bezieht sich auf die hochkommas. Ich weiss nicht wie ich die Escapen kann.
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.