Eu joguei um script rápido para fazer o que você está pedindo. Salve-o em um arquivo como sort.sh
e, em seguida, execute-o como ./sort.sh kick
ou ./sort.sh snare
(termo de pesquisa do espaço no arquivo). Ele encontrará arquivos com base no valor que você passou e, em seguida, criará diretórios numerados como kick_1
e kick_2
etc. Além disso, ele deixará um arquivo de índice em cada diretório com todos os nomes de arquivos, se desejar. Espero que ajude!
#!/bin/bash
declare -i numFiles
declare -i numDirs
mkdir ./temp
## Find files and copy to ./temp directory
find -E /Users/bot/Documents/_Sound\ Library -regex ".*($1).*" -exec cp {} ./temp/ \;
## Get total number of files found and divide by 128 (+1 to allow for the final directory)
numFiles='ls ./temp | wc -l'
numDirs=$numFiles/128+1
## All the file moving and directory naming
for i in $(seq 1 $numDirs); do
mkdir $1_$i;
ls ./temp/ |head -128 > $1_$i/$1_$i.index
for x in 'cat $1_$i/$1_$i.index'; do mv ./temp/$x $1_$i; done
## Uncomment if you want to remove the index file
#rm $1_$i/$1_$i.index
done
## Remove temp directory
rm -rf ./temp