如何使用sed替换包含方括号和美元符号的行中的单词?

Iugurbas

我想替换为/usr/share/phpmyadmin/config.inc.php文件

$cfg['blowfish_secret'] = '';

$cfg['blowfish_secret'] = 'blablabla';

与sed。

我正在尝试:

sed -i "s/\$cfg['blowfish_secret'] = '';/$cfg['blowfish_secret'] = 'blablabla';/g" /usr/share/phpmyadmin/config.inc.php

但它并没有改变。我怎样才能做到这一点?

这可能对您有用(GNU sed):

sed 's/\(\$cfg\['\''blowfish_secret'\''\] = '\''\)\('\'';\)/\1blablabla\2/' file

这是一个很好的例子:

对于第三个问题;大多数人(似乎)更喜欢用双引号将整个sed命令括起来。这解决了单引号的问题,但带来了一个副作用,即该命令可由Shell解释。如果您确定这些副作用不会抬起它们的丑陋头(变量和shell历史记录可以使它们摆脱困境),请继续使用sed命令,并用单引号引起来:

  • 用替换单引号 '\''
  • 在插入\之前的任何文字[]*^$\

最有可能节省一天。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章