0

我正在重新构建我的网站,并且必须重新安排文件中的引用。有一个包含许多子目录和 php 文件的目录。我正在寻找某种命令/脚本,该命令/脚本可以搜索该目录中的每个文件以查找此模式并将其替换为自定义模式。

例如:我想替换确切出现的one/two/three/ by /shopping/shop/ipad。换句话说,如果任何文件包含一些字符串 For 例如:

location:index.php?p=one/two/three/abcdefg&aid

那么它应该被替换为

location:index.php?p=/shopping/shop/ipad/abcdefg&aid

请注意,内容替换应该发生在每个文件中,在/主目录中的每个目录子目录中(比如主目录名称是abc& 所有子目录 & 文件都在 内abc)。不应更改目录名称本身。我怎样才能做到这一点?我的服务器运行 linux 并且我有 root 和 shell 访问权限。

4

3 回答 3

1

sed是您正在寻找的:

find .  -exec sed -i "s/one\/two\/three/shopping\/shop\/ipad/g" '{}' \;
于 2012-12-28T22:40:21.750 回答
1
find . -type f|xargs perl -pi -e 's/one\/two\/three/shopping\/shop\/ipad/g'

经过测试并且工作正常。如果只有one

你也可以在这里找到

于 2012-12-29T08:32:15.653 回答
0

试试这个:

find . -type f -print0 | xargs -0 sed -i 's/one\/two\/three/shopping\/shop\/ipad/g'
于 2012-12-29T18:19:22.277 回答