使用sed用$ SERVER ['PHP_SELF']全局替换旧式$ PHP_SELF

问题描述 投票:1回答:1

不是sed专家,我需要在目录中全局将字符串$PHP_SELF的所有实例替换为$_SERVER['PHP_SELF']

这是一个“老派”的osCommerce应用程序,我需要暂时恢复以进行展示。

php sed oscommerce
1个回答
0
投票

[sed本身不是递归,因此您需要使用其他工具,find通常是正确的答案。

在顶级目录中运行。 sed将以.bak扩展名备份它读取的每个文件(无论是否实际进行了替换)。如果不想备份行为,请使用-i而不是-i.bak

我建议您首先在测试目录上尝试一下,以确保它符合期望。

#!/bin/bash

while IFS= read -r -d $'\0' file; do
   sed -i.bak $'s/$PHP_SELF/$_SERVER[\'PHP_SELF\']/g' "$file"
done < <(find . -type f -name "*.php" -print0)
© www.soinside.com 2019 - 2024. All rights reserved.