示例:我们有一个文件夹,里面有 30 张名称不一致的图片。这些图片需要以一致且数字的形式命名:image1.jpg image2.jpg image3.jpg ... image30.jpg 这可以自动化吗?
答案1
榛监视文件夹的变化并可以重命名新添加的文件。具有全功能演示的商业版本。
Hazel 会监视您指定的所有文件夹,并根据您创建的规则自动整理文件。它具有与 Apple Mail 类似的规则界面,因此您应该会感觉非常熟悉。让 Hazel 根据名称、日期、类型、文件来源网站/电子邮件地址(仅限 Safari 和 Mail)等移动文件。
姓名粉碎机是一个文件重命名实用程序。只需将文件拖放到程序窗口并设置规则即可。预览显示文件随后将如何命名。具有全功能演示的商业版本。
Finder 有很多优点,但重命名大量文件不是其中之一。使用 Name Mangler,它可轻松完成所有文件重命名任务。
您的 Mac 配备自动机,一款可以让你创建所谓的工作流程。
使用 Automator,您可以自动执行大部分计算机操作。使用地址簿中的联系人创建和打印家庭通讯录。从您喜爱的网站查找图片并将其添加到 iPhoto。将文档打印到 iPad。立即重命名 Finder 中的数十个文件。
启动它,然后选择创建一个新的工作流程。从库中添加获取指定 Finder 项目行动和重命名 Finder 项目操作(在被询问时不要创建文件的副本)。将文件拖放到第一个操作上以将其添加到工作流程中。配置第二个操作,如下所示使顺序和新名字和毫无隔阂. 按工具栏中的“播放”按钮运行。
要从 中的命令行执行此操作bash
,请进入父目录并运行以下命令:
declare -i C=1 ; for file in *.jpg ; do mv "$file" "image$C.jpg" ; C=C+1 ; done
答案2
Driveby 回答,以防将来有人访问此页面:Yosemite(OSX 10.10)在 finder 中添加了批量重命名功能,因此现在所有人要执行诸如 OP 这样的操作所要做的就是选择所有需要重命名的文件,右键单击/控制单击它们,然后选择Rename X items...
。
答案3
您可以使用如下 shell 命令:
i=1;for f in *;do echo mv "$f" image$((i++)).jpg;done
echo
如果输出看起来正确则删除。
另一个选项是运行brew install rename
然后运行。如果输出看起来正确,则rename -n '$_=$N.".jpg"' *
删除。是从 1 开始的文件编号,是当前行,用于 Perl 中的字符串连接。-n
$N
$_
.
更多示例:
i=1;for f in *;do mv "$f" $(printf %03d $i).jpg;let i++;done
i=1;for f in *;do mv "$f" $(printf %03d $i).${f##*.};let i++;done
IFS=$'\n';i=1;for f in $(ls -rt);do mv "$f" "$((i++)) $f";done
for f in *.mp3;do mv "$f" "$(printf %02d ${f%% *}) ${f#* }";done
for f in *;do b=${f%.*};x=${f#*.};mv $f ${b%-*}-$(printf %03d ${b#*-}).$x;done
shopt -s extglob;for f in !(*.*);do mv $f $f.txt;done
for f in *;do mv "$f" "${f//[^a-zA-Z0-9.]}";done
rename 's/.*ep(..).*/Example EP$1 720p HDTV x264.srt/' *.srt
${f##*.}
*.
从开始处删除最长的模式,从末尾${f%.*}
删除最短的模式。删除除 之外的所有字符。.*
${f//[^a-zA-Z0-9.]}
[a-zA-Z0-9.]