使用sed从php文件中删除注释

时间:2015-11-09 10:08:51

标签: php linux bash sed

我正在尝试使用bash脚本中的sed编辑php配置文件。我坚持要删除特定行的注释。我想取消注释:

// $CFG->phpunit_prefix = 'phpu_';

我尝试了一些可以替换/更新路径的命令:

"s%// $CFG->phpunit_prefix%$CFG->phpunit_prefix%" config.php

但在这种情况下它不起作用。

1 个答案:

答案 0 :(得分:3)

我认为您的问题只是您使用双引号,因此shell正在扩展$CFG。更改为单引号:

sed 's%// $CFG->phpunit_prefix%$CFG->phpunit_prefix%' config.php

一般情况下,我建议总是使用单引号,除非在极少数情况下你使用shell变量作为sed命令的一部分(它带有自己的一组陷阱)。

为了提高可读性并避免重复自己,请使用捕获组:

sed 's%// \($CFG->phpunit_prefix\)%\1%' config.php

要调试此类问题,请使用set -x,它将向您显示您正在执行的命令与您打算使用的命令不同。