gpt4 book ai didi

linux - 使用 zmv 或重命名将具有路径名的文件重命名为正确的大小写

转载 作者:太空宇宙 更新时间:2023-11-04 13:00:58 26 4
gpt4 key购买 nike

如何使用 zmv 命令将所有文件名和前导目录转换为标题(正确的大小写)。

我发现一个开始的例子是:

autoload -U zmv
zmv '(*).(*)' '${(C)1}.$2'

如果文件在子目录中,上述方法将不起作用。

here

zmv '(**/)(*)~CVS~**/CVS' '${(C)1}${(L)2}'

递归小写文件和名称不是 CVS 的目录。这会尝试将小写文件名复制到标题大写目录(该目录尚不存在,因此也不起作用。

如果尝试转换为小写(来自 https://stackoverflow.com/a/152741/631775 ),以下内容效果很好:

find my_root_dir -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

但我想在这里做一个适当的案例。

最佳答案

这使用 rename 又名 prename 的 Perl 脚本版本。

find -depth -execdir rename 's/.*/\L$&/;s/[[:lower:]]+/\u$&/g' {} \;

它将整个名称小写,然后将每个单词的第一个字母大写。

由于在第一个 s 命令之后所有字符都已经是小写的,[[:lower:]]+ 可以简化为 .+ .

请注意,“单词”的定义很松散,例如,“ABC6DEF7GHI”会变成“Abc6Def7Ghi”。

关于linux - 使用 zmv 或重命名将具有路径名的文件重命名为正确的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33888818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com