Como eu altero esse script “Zip multiple files” (mac os) para remover a extensão da saída?

0

Eu uso este script para zipar vários arquivos em arquivos zip individuais (embora um serviço de automação, então Bash)

for f in "$@"
do
zip -j "$f.zip" "$f"
done

funciona perfeitamente MAS, o arquivo zip tem a extensão no nome:

zipme.jpg sai como zipme.jpg.zip

o resultado que eu estou depois é: zipme.zip

seria ainda melhor se você pudesse deixar a extensão e substituir o período por um sublinhado: zipme_jpg.zip

Muitos dos meus clientes têm problemas com os dois períodos. Agora eu os removo manualmente depois de zipar. Alguém pode me dizer como consertar o roteiro?

    
por Terry Wayne Ranson 03.12.2015 / 19:37

1 resposta

3

Os jpegs já estão compactados, não é necessário compactá-los novamente com o zip. Mas você poderia usar a remoção de substring na expansão de parâmetro para remover a extensão.

for f in "$@"
do
zip -j "${f%.*}.zip" "$f"
done

O ${f%.*} retira a extensão do nome do arquivo.

    
por 03.12.2015 / 19:53

Tags