Eu estou procurando uma maneira de obter finde xargs(GNUWin32, no Win7, ambos os programas na versão 4.1) para jogar junto, com nomes de arquivos que contêm espaços.
Obtendo os nomes de arquivos em xargs que um era um desafio, mas eu parecem encontrar nenhuma maneira de fazê-los para fora em uma peça. Infelizmente, xargsretira aspas, não importa o que eu tente.
Isso faz com lameque (da qual deve ser chamado xargs) se queixe de argumentos supérfluos, pois os nomes de arquivos contêm espaços.
Sim, eu conheço finda -execopção (que funcionaria sem xargs), explicitamente não estou interessado nisso, pois desejo executar 8 instâncias paralelas de lameuma tarefa em lote intensivamente computacional (recodifique aproximadamente 1.800 audiobooks de 192kbit / s mp3s para caber no cartão micro-SD do meu aparelho). Isto é xargs -P 8.
Este comando:
find . -name "*.mp3" -printf "\"%P\" --abr 52 -q 0 --silent \"conv/%P\" " | xargs -n 7
produzirá algo semelhante a:
path/01.01 foo bar.mp3 --abr 52 -q 0 --silent conv/path/path/01.01 foo bar.mp3
... que ainda não possui aspas, portanto, se eu colocar lameno final desse comando, ele será considerado path/01.01como entrada, foocomo saída, e reclamará de que há um bar.mp3argumento supérfluo .
- Eu tentei adicionar apóstrofos (entre as aspas e dentro delas), mas o `xargs" também as remove.
-print0também não fará (pelo menos por qualquer coisa que eu tentei).- Eu tentei simular
-print0comprintfe\0, sem sucesso. - Enquanto isso, estou brincando com a idéia de redirecionar a saída para um arquivo e adicionar as aspas com um editor de texto ...