Você pode usar xargs para usar a saída de um comando como argumentos para executar outro; mas usando a saída de ls
para isso é uma loucura problemática por causa de espaços e citando questões. Para realizar o que você está sugerindo se houver algum espaço nos nomes produzidos, você teria que fazer algo assim:
ls | grep Pantera | sed -e 's/\[flac\]/[mp3]/' | xargs -n1 -i{} mkdir "{}"
No entanto, a ferramenta muito melhor para isso seria usar os comandos find
e -exec
. A menos que alguém saiba como usar as funções de string do bash em uma string literal em vez de uma variável ou conjunto e usar uma variável em um comando, você precisará de sintaxe do ssapkota para iniciar um subshell.
Ao usar find, considere também opções como -type d
para retornar somente correspondências de diretório (ou -type f
para arquivos). Você poderia remover o -maxdepth 1
se quisesse fazer uma descoberta recursiva. Também é possível que a correspondência de padrões possa ser refinada para o seu cenário.