Selecionando arquivos inexistentes com curinga / regex

4

Estou tentando converter centenas de *.jpg arquivos em *.webp arquivos com libwebp no macOS. Particularmente, desejo usar a ferramenta de linha de comando cwebp para realizar a conversão. Funciona assim:

cwebp <input_file>.jpg -o <output_file>.webp

Meus arquivos *.jpg , cujos nomes são IMG_20160227_110640.jpg ou mais, são armazenados em um diretório chamado root . O problema é que *.webp files não existe quando a conversão é executada, portanto, não sei como passar seus nomes para cwebp . Por exemplo, se eu tiver apenas uma imagem para converter, eu executaria simples

cwebp IMG_20160227_110640.jpg -o IMG_20160227_110640.webp

No entanto, existem centenas deles e não quero digitar centenas de linhas de comando. Como usar uma expressão regular / escrever um script para automatizar a conversão?

    
por nalzok 26.01.2017 / 03:04

1 resposta

5

Use um loop for combinado com expansão de parâmetro:

for f in *.jpg; do cwebp "$f" -o "${f%.jpg}.webp"; done

Veja também LESS='+/Parameter Expansion' man bash para ler sobre isso no Bash.

No entanto, a Expansão do Parâmetro é especificada em POSIX ; não é específico para Bash. (O Bash pode ter algumas extensões, no entanto.) O comando acima funcionará em qualquer sistema POSIX.

    
por 26.01.2017 / 03:23