不是sed专家,我需要在目录中全局将字符串$PHP_SELF
的所有实例替换为$_SERVER['PHP_SELF']
。
这是一个“老派”的osCommerce应用程序,我需要暂时恢复以进行展示。
[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)