Com alguns shells, você poderia usar globbing + flags extras para corresponder apenas a arquivos em classe um .
Com bash :
shopt -s extglob
for one in +([0-9])-+([0-9])-+([0-9])-+([0-9])-+([0-9])
do
[[ -f $one ]] && mv -- "$one" first-class
done
+(<PATTERN>) corresponde a uma ou mais ocorrências do padrão especificado, [[ -f ... ]] testa o arquivo normal - se sim, é mv -ed first-class ; Para executar um dry-run , adicione echo na frente de mv .
com zsh :
setopt extended_glob
mv -t first-class [0-9]##(-[0-9]##)(#c4)(.)
x## corresponde a uma ou mais ocorrências do padrão x , (#cN) exige exatamente N correspondências e (.) corresponde somente a arquivos
ou:
autoload zmv
zmv -Q '[0-9]##(-[0-9]##)(#c4)(.)' first-class
-Q ativa os qualificadores de globo nu, para executar a seco adicionar -n , por exemplo zmv -Qn ...
Se não for necessário filtrar arquivos regulares, você poderá fazer isso sem o teste em bash :
shopt -s extglob
mv -- +([0-9])-+([0-9])-+([0-9])-+([0-9])-+([0-9]) first-class
e sem o qualificador (.) em zsh :
setopt extended_glob
mv -t first-class [0-9]##(-[0-9]##)(#c4)
ou
autoload zmv
zmv '[0-9]##(-[0-9]##)(#c4)' first-class