Article 55K4Z [SOLVED] zsh - zmv - do not change case if there are more than one consecutive uppercase letters

[SOLVED] zsh - zmv - do not change case if there are more than one consecutive uppercase letters

by
blueray
from LinuxQuestions.org on (#55K4Z)
I am using the following command

Code:zmv -n -Q '(**/)(*[[:upper:]]*)(/)' '${1}${(L)${2//(#b)([[:upper:]])/-$match[1]}#-}'to transform

Code: % tree
.
EmptyFile.txt
FirstDirectoryName
FourthDirectoryName
secondDirectoryName
thirdDirectoryName
FourthDirectoryName
secondDirectoryName
thirdDirectoryNameTo

Code: % tree
.
EmptyFile.txt
first-directory-name
fourth-directory-name
second-directory-name
third-directory-name
fourth-directory-name
second-directory-name
third-directory-nameHowever there is a small problem.

I do not want to lowercase if there are more than one consecutive uppercase letters. I just want to put `-` behind the capital letters given it is not in the beginning.

Code: % tree
.
DDDDDDD
FirstFolderToRename
DDDDDDD
ThisIsDDDDD
secondFolderToRename
DDDDDDD
ThisIsDDDDD
ThisIsDDDDDCurrent Output

Code: % zmv -n -Q '(**/)(*[[:upper:]]*)(/)' '${1}${(L)${2//(#b)([[:upper:]])/-$match[1]}#-}'
mv -- FirstFolderToRename/DDDDDDD FirstFolderToRename/d-d-d-d-d-d-d
mv -- FirstFolderToRename/ThisIsDDDDD FirstFolderToRename/this-is-d-d-d-d-d
mv -- secondFolderToRename/DDDDDDD secondFolderToRename/d-d-d-d-d-d-d
mv -- secondFolderToRename/ThisIsDDDDD secondFolderToRename/this-is-d-d-d-d-d
mv -- DDDDDDD d-d-d-d-d-d-d
mv -- FirstFolderToRename first-folder-to-rename
mv -- secondFolderToRename second-folder-to-rename
mv -- ThisIsDDDDD this-is-d-d-d-d-dExpected Output

Code: mv -- FirstFolderToRename/DDDDDDD FirstFolderToRename/DDDDDDD
mv -- FirstFolderToRename/ThisIsDDDDD FirstFolderToRename/this-is-DDDDD
mv -- secondFolderToRename/DDDDDDD secondFolderToRename/DDDDDDD
mv -- secondFolderToRename/ThisIsDDDDD secondFolderToRename/this-is-DDDDD
mv -- DDDDDDD DDDDDDD
mv -- FirstFolderToRename first-folder-to-rename
mv -- secondFolderToRename second-folder-to-rename
mv -- ThisIsDDDDD this-is-DDDDDlatest?d=yIl2AUoC8zA latest?i=vNo7N7XcJyg:puimDlEzFfc:F7zBnMy latest?i=vNo7N7XcJyg:puimDlEzFfc:V_sGLiP latest?d=qj6IDK7rITs latest?i=vNo7N7XcJyg:puimDlEzFfc:gIN9vFwvNo7N7XcJyg
External Content
Source RSS or Atom Feed
Feed Location https://feeds.feedburner.com/linuxquestions/latest
Feed Title LinuxQuestions.org
Feed Link https://www.linuxquestions.org/questions/
Reply 0 comments