【问题标题】:Comment out a value from PHP file via bash?通过 bash 从 PHP 文件中注释掉一个值?
【发布时间】:2013-01-18 09:53:02
【问题描述】:

所以,我正在编写一个 bash 脚本,我需要在一个函数中注释掉 PHP 文件中的两个值。

define('WP_CACHE', true); //Added by WP-Cache Manager
define( 'WPCACHEHOME', '/home/fescobar/public_html/testground/wp-content/plugins/wp-super-cache/' ); //Added by WP-Cache Manager

我设法使用以下内容摆脱了第一行。

first="define('WP_CACHE', true);"; sed "s/$one/testingwp/g" wp-config.php

但是,该方法第二次失败。我的主要目标只是在这些值前面用 //* 注释掉这两行。但是,我总是遇到 sed 语法错误。

【问题讨论】:

  • 第一个方法也应该失败。 $one 的值是多少?
  • @WilliamPursell 在帖子中犯了一个错误。第一个应该是一个。

标签: linux bash scripting sed


【解决方案1】:

看起来你只是想要:

sed '/WP_CACHE/s|^|//|'sed '/WPCACHE/s|^|//|'

这会将// 添加到包含字符串WP_CACHEWPCACHE 的行前。如果您尝试将替换字符串重新排列为也匹配 ^define 的行,请尝试:

sed '/^define(.WP_CACHE/s|^|//|'(您实际上可以匹配引号字符,但使用. 更容易键入。您需要进一步细化问题以描述您要做什么。

【讨论】:

  • 我只是想注释掉或可能删除。定义('WP_CACHE',真); //由 WP-Cache 管理器添加 define( 'WPCACHEHOME', '/home/fescobar/public_html/testground/wp-content/plugins/wp-super-cache/' ); //由 WP-Cache Manager 添加我尝试了您的示例,但没有任何改变。
  • 如果我给出的前两个示例没有将// 添加到包含文本WP_CACHEWPCACHE 的任何行的开头,那么您可能输入了错误的命令。 (那个或者你对sed 的实现被破坏了,或者你期望它改变文件而不是作为过滤器工作。)
猜你喜欢
  • 2013-01-08
  • 2017-06-02
  • 2014-06-08
  • 2015-07-09
  • 2011-08-12
  • 2011-06-01
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
相关资源
最近更新 更多