【发布时间】:2013-11-20 20:14:18
【问题描述】:
我有一个大约 500 个文件夹的列表。每个文件夹中都有一个functions.php 文件。
我需要在每个 functions.php 文件中搜索以下文本:
function wp_initialize_the_theme_finish()
我需要将任何包含上述文本的行替换为:
function wp_initialize_the_theme_finish() { $uri = strtolower($_SERVER["REQUEST_URI"]); if(is_admin() || substr_count($uri, "wp-admin") > 0 || substr_count($uri, "wp-login") > 0 ) { /* */ } else { $l = 'mydomain.com'; $f = dirname(__file__) . "/footer.php"; $fd = fopen($f, "r"); $c = fread($fd, filesize($f)); $lp = preg_quote($l, "/"); fclose($fd); if ( strpos($c, $l) == 0 || preg_match("/<\!--(.*" . $lp . ".*)-->/si", $c) || preg_match("/<\?php([^\?]+[^>]+" . $lp . ".*)\?>/si", $c) ) { wp_initialize_the_theme_message(); die; } } } wp_initialize_the_theme_finish();
注意:我需要用我的新行替换整行,而不仅仅是开头。
任何帮助将不胜感激。
【问题讨论】:
-
sed 将能够为您做到这一点,使用
-i(就地)标志 -
我实际上能够在一个文件上做到这一点。我想我不明白的部分是如何搜索所有文件夹中的所有functions.php文件并一次替换所有内容......
-
我回答了你是如何找到所有文件的
标签: shell command-line ssh command