Como posso apagar arquivos baseados em metadados (flac)?

1

Eu tenho várias pastas com arquivos FLAC 24/96 e 16 / 44.1.

Eu quero excluir os arquivos de 24 bits / 96 KHz, mas deixe os outros. Como faço isso a partir da linha de comando? Existe uma maneira de classificar sistematicamente os arquivos por metadados e, em seguida, usar essa lista com rm ?

    
por Finwe 28.10.2013 / 12:36

1 resposta

-2

Para completar, vale a pena mencionar que também é muito fácil abrir um diretório e seus subdiretórios em Puddletag , classifique os critérios desejados e marque e exclua os arquivos desejados. Isso pode ser mais seguro e ainda mais rápido do que personalizar ou escrever um script completamente novo (consulte: xkcd 1205 - Vale a pena? ? ).

Você pode usar metaflac ( manpage ) para arquivos flac.

$ metaflac --show-sample-rate --show-bps "somefile.flac"
44100
16

Claro que este não é um script completo. Talvez você queira dar uma olhada no Guia de script de script avançado .

O seguinte seria um script muito básico que exclua todos os arquivos que retornam 44100 e 16 para o comando acima. O diretório é fornecido ao script como um parâmetro (por exemplo, flac-44100-removal.sh "Music/All music with 44.1kHz/" )

#!/bin/bash
IFS=$'\n'

for file in $(find "${1}" -name "*.flac");
do
    if [ "$(metaflac  --show-sample-rate "$file")" = "44100" ]; then
        if [ "$(metaflac  --show-bps "$file")" = "16" ]; then
            rm -i "$file"
        fi
    fi
done

Alternativas ao metaflac são: vorbiscomment para ogg, AtomicParsley para mp4 / m4a, mid3v2 para mp3 ou mediainfo para tudo, mas todas elas têm saídas diferentes, com mediainfo sendo excessivamente personalizável.

    
por LiveWireBT 28.10.2013 / 13:41