小编Bla*_*ckR的帖子

从终端递归地将所有文件和文件夹重命名为 Title Case

我是一个新手,我到处搜索这个,我也尝试过将小写重命名命令与一些正则表达式结合使用以获得标题案例而不是小写,但我不是很成功。

此命令将给定文件夹中的所有内容(文件 + 文件夹)转换为小写:

while IFS= read -r -d '' file; do mv -b -- "$file" "${file,,}"; done < <(find . -depth -name '*[A-Z]*' -print0)
Run Code Online (Sandbox Code Playgroud)

这是我对标题案例的尝试,它有效,但它不是递归的:

find . -name "*.flac" -print0 | while read -d $'\0' file; do rename 's/(^|[\s\(\)\[\]_-])([a-z])/$1\u$2/g' *; done
Run Code Online (Sandbox Code Playgroud)

这些只是我的一些尝试,如果有更好、更短的解决方案,我会非常喜欢那些。

你能帮我一下吗?提前致谢!

编辑:我忘了说,我的文件是这样的:“09 - 回家之路 - Amy MacDonald.flac”;应该更名为“09 - 回家之路 - 艾米麦克唐纳.flac”。请注意在单词中间已经有标题大小写的单词和大写字母。

command-line batch-rename

5
推荐指数
1
解决办法
3422
查看次数

标签 统计

batch-rename ×1

command-line ×1