1
这里的文本改变:SED正则表达式用PHP正则表达式不兼容
'db' => [
'connectionString' => 'mysql:host=localhost;dbname=bob',
'emulatePrepare' => true,
'username' => 'local',
'password' => 'local',
'charset' => 'utf8',
],
结果预计:
'db' => [
'connectionString' => 'mysql:host=localhost;dbname=bob',
'emulatePrepare' => true,
'username' => 'alice',
'password' => 'local',
'charset' => 'utf8',
],
sed命令:
sed -E "s#('db'[ ]*=>[ ]*\[)((\n*?.*?|^\t*.*\n)*)('username'[ ]*=[ ]*>[ ]*)'.*'#\1\2\4'alice'#" textTochange.txt
上https://regex101.com/我的正则表达式的工作没有问题,像preg_replace PHP中的魅力工作,但没有与sed :(
'php'使用与'sed'不兼容的正则表达式。除了你正在匹配一个多行字符串。 'perl'或'awk'更适合这个。 – anubhava
thx为您的帮助@anubhava!我编辑了我的问题与答案:) –
@GillesGrandguillaume解决方案应放在答案,而不是问题。你可以回答你自己的问题。 – Barmar