How to sort files into a sub-folder based on filename part

command linefilesmvpatterns

These are the files in the directory:

Ford-Mustang-001.jpg
Ford-Mustang-002.jpg
Ford-Mustang-003.jpg

Chevy-Impala-001.jpg
Chevy-Impala-002.jpg
Chevy-Impala-003.jpg

I would like to sort these into subfolders:

/Mustang
/Impala

Best Answer

using prename (perl renamer)

prename 'if(/(.+?)-(.+?)-(.*)/){mkdir $2; $_="$2/$_"}' *.jpg
Related Question