我知道这基本上已经回答了,带有shell脚本(Sanitize Filenames)的automator工作得很好,但是我也需要它来做所有子文件夹。如果可能,在保留文件扩展名的同时将文件名减少到50个字符。我发现了一行bash代码截断了文件,但它也剥离了扩展名,并且在将这些文件从Mac传输到Windows时效果不佳。
现在的脚本是这样的
for f in "$1"/*; do
dir=$(dirname "$f")
file=$(basename "$f")
mv "$f" "${dir}/${file//[[:cntrl:]\\\/:*?\"<>|]/_}"
done
我并不反对在automator中使用applescript来完成这项任务。
注意:在unix / linux中有一个名为“rename”的可选命令,通过快速Google搜索,我发现mac有许多类似的命令。我想你应该检查这些命令。这些“重命名”命令使用 SED 表达式(正则表达式+其他)构造最终名称。
—
Giacomo Catenazzi
有没有办法让这个做子文件夹?我还试图将文件名修剪为30个字符,同时保留扩展名。有任何想法吗?我有这个:mv“$ f”“$ {dir} / $ {file:0:30}这很好用,但删除了我需要的扩展,因为文件正在传输到Windows系统。
—
Tim Moseley
我会做'像' {0,30}(\。[^。] )?$'作为正则表达式。使用重命名或“find | sed | bash”,在sed中我构造mv命令
—
Giacomo Catenazzi