使用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代码>。这就是你所说的“没用”吗?你会得到什么样的结果,你期望看到什么?