Assumindo que a linha de saída que você tem é algo como isto (o formato de data não importa):
Encoded date : 2016-11-20
Você pode renomear os arquivos como datas com um pequeno script ...
i=0; for f in *; do printf -v new "$(mediainfo "$f" | sed -nr 's/Encoded date\s+: (.*)//p')-%02d.mp4" "$((++i))"; echo mv -v -- "$f" "$new"; done
Estou dando a eles um número final para garantir que os arquivos com a mesma data não tenham exatamente o mesmo nome, o que faria com que alguns fossem sobrescritos. Novos nomes de arquivos serão 2016-11-20-01.mp4
etc ou qualquer que seja o formato de data de "Data codificada" para você. Remova echo
após o teste para realmente renomear os arquivos. Versão mais legível:
i=0
for f in *; do
printf -v new "$(mediainfo "$f" | sed -nr 's/Encoded date\s+: (.*)//p')-%02d.mp4" "$((++i))"
echo mv -v -- "$f" "$new"
done
Explicação
-
i=0
inicia a iteração a partir de 0 -
for f in *
para todos os arquivos no diretório atual (substitua pelo caminho apropriado ou glob, se necessário) -
printf -v new
formata o novo nome assim -
$(mediainfo "$f" | sed -nr 's/Encoded date\s+: (.*)//p')
extrai as informações de data do campo Data codificada -
-%02d.mp4" "$((++i))"
adiciona um número e uma extensão ao final de cada nome de arquivo -
mv -v -- "$f" "$new"
renomeie os arquivos