Omitir extensão com a localização?


11

Preciso criar miniaturas a partir de vários arquivos .png e gostaria de fazer isso usando o convertutilitário ImageMagicks . Para localizar recursivamente todos os arquivos que não são miniaturas, estou usando a seguinte chamada (dividida em duas linhas para facilitar a leitura):

find . -type f -name "*.png" -not -name "*thumb.png*" \
  -exec convert {} -thumbnail 200x200 {}.thumb.png \;`

Mas isso obviamente criaria um arquivo chamado a.png.thumb.pngao executá-lo em um arquivo chamado a.png. Como remover a .pngextensão do segundo {}parâmetro passado para converter?

Respostas:


14

A maneira mais fácil de fazer isso é passar o {}shell para um shell como she fazer com que o shell faça isso:

find ... \
    -exec sh -c 'convert "$0" -thumbnail 200x200 "${0%.png}.thumb.png"' {} \;
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.