Hier wird der Text zu ändern:sed regex nicht kompatibel mit PHP Regex
'db' => [
'connectionString' => 'mysql:host=localhost;dbname=bob',
'emulatePrepare' => true,
'username' => 'local',
'password' => 'local',
'charset' => 'utf8',
],
Ergebnis erwartet:
'db' => [
'connectionString' => 'mysql:host=localhost;dbname=bob',
'emulatePrepare' => true,
'username' => 'alice',
'password' => 'local',
'charset' => 'utf8',
],
sed Befehl:
sed -E "s#('db'[ ]*=>[ ]*\[)((\n*?.*?|^\t*.*\n)*)('username'[ ]*=[ ]*>[ ]*)'.*'#\1\2\4'alice'#" textTochange.txt
Meine regex Arbeit auf https://regex101.com/ ohne Problem , arbeite wie ein Zauber in PHP mit preg_replace, aber nicht mit sed :(
'php' verwendet eine Regex-Variante, die nicht mit' sed' kompatibel ist. Außerdem stimmen Sie mit einer mehrzeiligen Zeichenfolge überein. "Perl" oder "Awk" sind dafür besser geeignet. – anubhava
Danke für Ihre Hilfe @anubhava! Ich habe meine Frage mit der Antwort bearbeitet :) –
@GillesGrandguillaume Lösungen sollten in Antworten, nicht in Fragen eingefügt werden. Du darfst deine eigene Frage beantworten. – Barmar