【问题标题】:How do I Batch Rename Folders in OSX?如何在 OSX 中批量重命名文件夹?
【发布时间】:2018-08-29 18:43:59
【问题描述】:

所以我一直在尝试根据 CSV(旧名称,新名称)重命名大约 5000 个文件夹

这是一次性操作,一旦hdkjsh2-2f8c-46b9-bbdb_doc转换为3就不需要再碰了。

我尝试了here (Setting up an automator workflow with a command script) 的解决方案,但发现它在文件夹/目录名称方面并没有多大作用,并且所有指南/文档都围绕文件名而不是文件夹。 任何建议将不胜感激

CSV 示例

Doc_Location,  New_ID
hdkjsh2-2f8c-46b9-bbdb_doc , 3

【问题讨论】:

  • 也许你可以从你的 CSV 添加几行,这样我们就可以看到它是如何分隔的。此外,其中的名称是否按正确的顺序排列 - 我的意思是您是否可以将目录 bill 重命名为 fred,然后稍后再将 bill/mary 重命名为其他名称,但现在将不再有效,因为 @987654326 @ 现在是 fred 从第一步开始。另外,目录名中是否有空格?
  • 它不鼓励人们在格式错误、内部不一致并且您没有澄清问题时回答您的问题...您说 CSV 是 "旧名称,新名称" 而实际上是"新名称,旧名称"。我已正确重新格式化 CSV。您没有回答我关于空格或重命名顺序的问题。没有人愿意花很长时间想出一个答案,结果却被告知“对不起,我解释错了”
  • 这是一次性操作,一旦hdkjsh2-2f8c-46b9-bbdb_doc转换为3就不需要再去触碰,所以不用担心顺序。至于空格没有没有。

标签: macos automator


【解决方案1】:

请在尝试以下操作之前进行备份。

将以下脚本保存在您的HOME 目录中为renamer

#!/bin/bash

cat "file.csv" | while IFS=' ,' read dir new ; do
   if [ -d "$dir" ]; then
      echo Rename $dir as $new
      #mv "$dir" "$new"
   else
      echo "ERROR: Directory $dir not found - ignored"
   fi
done

然后启动终端并通过运行使脚本可执行:

chmod +x $HOME/renamer

然后将目录更改为需要重命名的目录:

cd path/to/things/needing/renaming

确保您已将名为 file.csv 的 CSV 保存在该目录中,然后运行:

$HOME/renamer

它实际上并没有做任何事情,它只是告诉你它会做什么。如果看起来正确,请编辑 $HOME/renamer 并删除以下行中的单个 #

#mv "$dir" "$new"

原来是这样的:

mv "$dir" "$new"

然后请确保您已进行备份并再次运行脚本:

$HOME/renamer

【讨论】:

    【解决方案2】:

    转到要重命名的其他文件夹所在的文件夹。选择要重命名的所有文件夹。然后单击查找器窗口顶部的操作图标。这将打开一个窗口,其中一个选项是重命名 x 项。见下图。

    当您选择“重命名 x 项”时,您会看到一个如下所示的框,您可以在其中指定新名称。

    【讨论】:

    • 查看大约 5000~ 文件夹要从 10k+ 中转换出来,所以不是一个真正的选择
    • 有没有办法对它们进行排序,以便将 5000 个列在一起?然后就可以全选了
    • 如果 5000 的名称相似,那么 mv 命令可能会起作用,例如,您可以执行 mv oldfilename0001 newfilename0001 。
    • Finder 的强大功能我以前不知道。
    猜你喜欢
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 2018-08-22
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    相关资源
    最近更新 更多