Quero gerar um único arquivo .txt para vários arquivos mp4 ou mkv contendo os detalhes do mediainfo para cada arquivo de vídeo.
Estou usando find e -execdir para criar a saída mediainfo, mas para todos os arquivos encontrados ele está redirecionando para um único arquivo. O único arquivo contém todas as mediainfo para o número x de arquivos mp4/mkv. Como obter um Video1.txt e depois um Video2.txt etc. de arquivos txt correspondentes?
Aqui está minha linha bash como eu a tenho:
find /mnt/vids/ \( -name '*.mp4' -or -name '*.mkv' \) -execdir mediainfo /mnt/vids/{} > /mnt/vids/{}.txt \;
Os redirecionamentos são feitos pelo shell antes da execução do comando (aqui
find
).Você precisaria
find
gerar um shell para executar um redirecionamento para cada arquivo ou usarmediainfo
's--LogFile
para permitir que ele escrevesse sozinho:(cuidado, nem todas
find
as implementações suportam incorporação{}
dentro de um argumento).Eles criariam um
/mnt/vids/path/to/file.mp4.txt
com a saída demediainfo
para o arquivo correspondente/mnt/vids/path/to/file.mp4
para cada arquivo com um nome terminando em.mp4
ou.mkv
em ou abaixo de/mnt/vids
.Para criar um
file.txt
em vez defind.mp4.txt
, ou seja, substituir a extensãomp4
/ por , isso teria que ser feito pelo shell:mkv
.txt
Onde
${var%pattern}
está um operador de expansão de parâmetro padrão (originalmente do shell Korn) que se expande para o valor$var
despojado da string mais curta que corresponde apattern
no final, então aqui para${file%.*}
a parte da ocorrência mais à direita.
até o final do caminho do arquivo.