Algo causado para danificar alguns dos meus arquivos flac e para descobrir quais eu preciso fazer, eu gostaria de obter uma lista contendo apenas os arquivos danificados.
Como faço agora: abra um terminal em um diretório e digite: $ flac -t * .flac
A saída de arquivos bons é algo como:
Song1.flac: ok
Song2.flac: ok
Em alguns dos meus antigos rasgos eu recebo avisos, mas a música parece estar bem:
Song3.flac: WARNING, cannot check MD5 signature since it was unset in the STREAMINFO
Song3.flac: ok
Mas quando ocorre um erro, as mensagens são algo como:
Song4.flac: testing, 73% complete
Song4.flac: ERROR while decoding data
state = FLAC__STREAM_DECODER_END_OF_STREAM
Song5.flac: ERROR while decoding data
state = FLAC__STREAM_DECODER_READ_FRAME
Song6.flac: ERROR, MD5 signature mismatch
Song7.flac: *** Got error code 3:FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM
Song7.flac: *** Got error code 0:FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
Song7.flac: ERROR while decoding data
state = FLAC__STREAM_DECODER_READ_FRAME
The FLAC stream may have been created by a more advanced encoder. Try
metaflac --show-vendor-tag Song7.flac
If the version number is greater than 1.2.1, this decoder is probably
not able to decode the file. If the version number is not, the file
may be corrupted, or you may have found a bug. In this case please
submit a bug report to
http://sourceforge.net/bugs/?func=addbug&group_id=13478
Make sure to use the "Monitor" feature to monitor the bug status.
Minha pergunta é:
- Como posso filtrar a saída para mostrar apenas arquivos com avisos (a saída contém AVISO) ou erros (a saída contém ERRO)?
Eu acho que pode ser factível com o grep, mas eu não sei como dar a saída do comando flac -t para grep. Com flac -c
- E se isso funcionar, como posso verificar todos os subdiretórios de uma só vez?
Minha coleção de músicas é classificada em muitos subdiretórios e indo para todos os dir e executar o comando seria trabalhoso.
Pontos de bônus se ele puder mostrar o caminho do arquivo corrompido, não apenas o nome:)