1

我在服务器上的一个文件夹中有 25,000 张 ++ 图像。其中很多都包含 %20,这会阻止它们显示。有谁知道我如何对 str_replace('%20', '_', $imagename) 执行命令行?

谢谢

4

3 回答 3

3

这可能有效http://snipplr.com/view/2736/

(此处提供代码以供将来参考)

for i in *.avi
do
  j=`echo $i | sed 's/find/replace/g'`
  mv "$i" "$j"
done

也可以写成一行

for i in *.avi; do j=`echo $i | sed 's/find/replace/g'`; mv "$i" "$j"; done
于 2012-08-09T21:13:45.040 回答
0

一种方法是获取文件中的文件列表,即使用 'ls -1 | awk '{print "mv $1 $1"}' > torename.sh',然后使用正则表达式编辑 torename.sh。一旦你得到你想要的脚本,运行脚本。

于 2012-08-09T21:12:31.590 回答
0

这个小的 python 片段可能可以帮助你:

import os

for root, dirs, files in os.walk(".", topdown=False):
    for name in files:
        if "%20" in name:
            os.rename(os.path.join(root, name), os.path.join(root, name.replace("%20", "_")))
            print("renamed: %s" % name)

注意“。” 论据os.walk。将其更改为文件所在目录的路径,或者从该目录运行脚本。

于 2012-08-09T21:13:08.687 回答