Como posso compactar e descompactar o Monkey's Audio In Ubuntu?

1

Estou usando o comando mac no terminal para compactar e descompactar os arquivos de áudio do Monkey. No entanto, quero encontrar uma maneira de fazer isso para mais de um arquivo por vez. Existe um truque para o programa mac que eu não sei, ou existe outro programa que possa ajudar?

Estou preso usando a GUI do Windows no WINE. Ajude-me a me livrar disso:)

    
por Ryan McClure 10.07.2012 / 09:00

1 resposta

4

Não, mac faz um arquivo por vez, então você precisa contornar isso.

Supondo que os arquivos que você deseja codificar / decodificar estejam em pastas ou subpastas específicas, e não em caminhos arbitrários, você pode fazer isso com uma combinação de localizar , sed e xargs .

Por exemplo, para codificar todos os arquivos WAV em uma pasta específica e todas as suas subpastas, com os arquivos de saída simplesmente com a extensão APE, usando o rápido -c1000 preset, você digitaria:

find ~/path/to/folder -name *.wav | sed 's/....$//g' \
   | xargs -I MACFILE mac "MACFILE.wav" "MACFILE.ape" -c1000

Explicação:

  • find localiza todos os arquivos com a extensão wav dentro e abaixo do caminho determinado e os envia.
    • Você pode usar 'pwd' (com os backticks) como abreviação para a pasta atual.
    • Adicione o argumento -maxdepth 0 para manter apenas a pasta atual e não entrar em subpastas.
  • A expressão sed exclui (isto é, substitui por "em branco") os últimos quatro caracteres de cada nome de arquivo retornado por find, que é a extensão .wav ou .ape
  • xargs alimenta cada nome de arquivo canalizado para o comando mac .
    • O -I MACFILE informa xargs para substituir cada ocorrência de MACFILE pela entrada (filename); Desta forma obtemos arquivos com extensões adequadas e não .wav.ape , etc.

Para decodificar somente dentro da pasta atual , e enviar para uma pasta personalizada, por exemplo:

find 'pwd' -name *.ape -maxdepth 0 | sed 's/....$//g' \
   | xargs -I MACFILE mac "MACFILE.ape" "/home/ryan/decodes/MACFILE.wav" -d
  

Nota: encontrar é um daqueles utilitários que são quase ilimitados (veja man find ). Com as opções de -exec e -printf corretas (e talvez mais), o find pode ser suficiente sem precisar do sed e do xargs , e tenho certeza que alguém vai apontar isso :). Mas acho isso mais fácil de explicar e entender.

    
por ish 10.07.2012 / 13:09