使用sed或regex替换匹配后的行

使用sed或regex替换匹配后的行,regex,sed,Regex,Sed,我需要用新值替换几个变量: 'database' => 'booDB', 'username' => 'booUR', 'password' => 'booPASS', 因此,在第一次匹配后替换所有内容,例如,'database'=>。遵循以下建议并使用: sed-r的/('database'=>)./\1test/'$SETTINGS 没用 预期结果: 'database' => 'newDB', 'username' => 'newUR',

我需要用新值替换几个变量:

  'database' => 'booDB',
  'username' => 'booUR',
  'password' => 'booPASS',
因此,在第一次匹配后替换所有内容,例如,
'database'=>
。遵循以下建议并使用:

sed-r的/('database'=>)./\1test/'$SETTINGS

没用

预期结果:

  'database' => 'newDB',
  'username' => 'newUR',
  'password' => 'newPASS',

好的,终于明白了。以下线路按预期运行:

sed -i "s/^\( *'password' => '\)[^\,]*/\1"new-pass"'/" $SETTINGS

始终为您的问题提供可验证的、最少的输入和预期的输出,而不是只提供您能理解的字符串。如果您试图实际编辑文件,则需要将
--in place
标志传递给
sed
;i、 e.
sed-ri的/('database'=>).*/\1test/'$SETTINGS。这就是你所说的“没用”吗?你会得到什么样的结果,你期望看到什么?