我有很多看起来像这样的文件:
"THIS IS my file.txt"
"THIS IS My file.txt"
"THIS IS m file.txt"
"THIS IS M file.txt"
所以基本上,如果我试图描述它,文件名由两部分组成,一个大写,另一个小写(尽管第二部分的第一个字母也可以是大写)。单词可以由一个字符组成。当有选择时,大写的单个字符单词被认为是第一部分。
我想提取文件名的第一部分,由大写单词组成,将它们转换为小写(只有第一个字母为大写),然后用连字符将其与其余部分分开。
所以我期待的结果是:
"This Is - my file.txt"
"This Is - My file.txt"
"This Is - m file.txt"
"This Is M - file.txt"
到目前为止,我所拥有的是:
rename 's/^(([A-Z]{2,}| )+)(.*)/\u\L$1\E - $3/g' *
但是它有很多问题(一个字母大写单词不匹配,并且只有第一个单词大写)。