0

次のようなファイルがたくさんあります。

"THIS IS my file.txt"
"THIS IS My file.txt"
"THIS IS m file.txt"
"THIS IS M file.txt"

つまり、基本的には、ファイル名は大文字と小文字の 2 つの部分で構成されています (ただし、2 番目の部分の最初の文字は大文字でもかまいません)。単語は 1 つの文字で構成できます。選択肢がある場合は、大文字の 1 文字の単語が最初の部分と見なされます。

大文字の単語で構成されるファイル名の最初の部分を抽出し、それらを小文字にして (最初の文字だけを大文字にして)、残りの部分とハイフンで区切りたいと思います。

だから私が期待している結果は次のとおりです。

"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' *

しかし、これにはかなりの問題があります (1 文字の大文字の単語が一致せず、最初の単語だけが大文字になります)。

4

1 に答える 1