Parece que o principal truque aqui é traduzir o nome do arquivo para o nome da pasta de destino. Há duas etapas: truncar todos, exceto os três primeiros dígitos, e remover o preenchimento zero. Para isso, selecionei os comandos sed
e $((10#
, respectivamente:
for X in *; do mv $X $((10#$(echo $X | sed -e 's/^\(...\).*//') )); done
Isso me causa erros menores, como mv: cannot move ‘114’ to a subdirectory of itself, ‘114/114’
, mas presumivelmente você não vai se importar com isso se seus arquivos estiverem sendo movidos para onde você quiser.