尝试匹配字符串并将其添加到替换项



我正在尝试使用 sed 和正则表达式在行尾添加一个字符串。

我有以下字符串:

disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

我试图在它的末尾添加字符串:

exec,system,shell_exec,passthru,

我的尝试如下:

sed -ie 's/disable_functions = .*[a-zA-z,]$/disable_functions = $1exec,system,shell_exec,passthru,/gI' /etc/php5/apache2/php.ini

它似乎只是在字符串中添加 $1 disable_functions = $1exec,system,shell_exec,passthru,

我哪里出错了?

试试:

sed '/^disable_functions/s/$/exec,system,shell_exec,passthru,/' /etc/php5/apache2/php.ini

如果输出看起来正常,则添加-i开关以修改文件。

$这里,意味着行的结束

您的原始命令缺少设置1值的捕获组(不是$1):

sed -ie 's/disable_functions = (.*[a-zA-z,])$/disable_functions = 1exec,system,shell_exec,passthru,/gI' /etc/php5/apache2/php.ini

但正如sputnick指出的那样,你只需要找到合适的行并附加所需的文本;没有必要匹配旧值并重新插入它们。

相关内容

  • 没有找到相关文章

最新更新