批量重命名文件

时间:2012-08-09 21:05:34

标签: linux

我在服务器上的文件夹中有25,000个++图像。他们中的很多人都有%20,这会阻止他们展示。有谁知道我怎样才能对str_replace('%20','_',$ imagename)执行命令行?

由于

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

答案 2 :(得分: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的论点。将其更改为文件所在目录的路径,或者从该目录运行脚本。