Как отсортировать файлы в подпапке на основе части имени файла?

Как отсортировать файлы в подпапке на основе части имени файла?

Вот файлы в каталоге:

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

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

Я хотел бы отсортировать их по подпапкам:

/Mustang
/Impala

решение1

Очевидный ответ:

Просто создайте каталоги и поместите в них файлы.

mkdir Mustang Impala
mv *Mustang*.jpg Mustang/
mv *Impala*.jpg Impala/

Это называетсяподстановка файлов; это особенность оболочки.


Если у вас огромное количество файлов и вам нужно создать много разных каталогов для их размещения, попробуйтеОтвет JJoao.

решение2

использование prename (переименование perl)

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

решение3

Я бы разделил имя файла с помощью awk, awk {split $0, a, "-"; mkdir a[1]; mv $0 a[1]/}если вы хотите переименовать, вы можете сделать это с помощью программы mv.

Связанный контент