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

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

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 

  • Почему эта операция переименования не работает?
  • проанализировать файл журнала, который принимает аргумент (время выполнения тестов)
  • Шаблон KSH из переменной не работает
  • Как удалить текст, сопоставляющий определенные шаблоны из файла
  • Рекурсивно удалять подкаталоги, не содержащие шаблона в OSX
  • 3 Solutions collect form web for “Как сортировать файлы в подпапку на основе части имени файла?”

    используя prename (perl renamer)

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

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

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

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

    Это называется файловым расширением ; это оболочка.


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

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

    Linux и Unix - лучшая ОС в мире.