Renomear em sequência arquivos de imagens acrescentando a informação do tamanho

Publicado por Perfil removido (última atualização em 06/06/2017)

[ Hits: 2.782 ]

Download 6655.renomear-imagens-LxA.sh




Um simples script para renomear vários arquivos de imagens e organizar os nomes em sequência adicionando a informação do tamanho (Largura vs Altura) das imagens.

  



Esconder código-fonte

#!/bin/bash
# Autor: PauloHAC (costapha@outlook.com)
# Renomeia em sequência arquivos de imagens, adicionando a resolução "Largura x Altura"
# ao nome dos arquivos.

# funções
ajuda() {
echo -e "Como usar: script.sh [opções]\n \
\t-p pasta (ex: $HOME/Imagens)\n \
\t-n nome dos arquivos (ex: fotos)\n \
\t-i início da numeração (ex: 10)\n \
\t-h exibe a mensagem de ajuda"
}

simular() {
n=$NUM
for ARQ in `ls -v -1 *.{jpg,JPG,png,PNG,jpeg,JPEG} 2> /dev/null` ; do
    EXT=`echo "$ARQ" | awk -F"." '{print $2}'`
    TAM=`identify "$ARQ" | cut -d" " -f3`
    NEW="$NOME$(printf "%03d" $n)-$TAM.$EXT"
    echo "SIMULAÇÃO: $ARQ => $NEW"
    let n++
done
}

renomear() {
n=$NUM
for ARQ in `ls -v -1 *.{jpg,JPG,png,PNG,jpeg,JPEG} 2> /dev/null` ; do
    EXT=`echo "$ARQ" | awk -F"." '{print $2}'`
    TAM=`identify "$ARQ" | cut -d" " -f3`
    NEW="$NOME$(printf "%03d" $n)-$TAM.$EXT"
    mv -i -v "$ARQ" "$NEW"
    let n++
done
}

# Atribuição dos valores das variáveis
if [ -z "$1" ] ; then
    echo "Entrando no modo interativo..."
    read -p "Diretório (ex: $HOME/Imagens): " PASTA
    read -p "Nome (ex: fotos): " NOME
    read -p "Início (ex: 1): " NUM
fi

while [ -n "$1" ]
do
    case "$1" in
        -p )         shift ; PASTA=$1 ;;
        -n )         shift ; NOME=$1 ;;
        -i )         shift ; NUM=$1 ;;
        -h|--help )  ajuda ; exit ;;
        * )          echo "Opção inválida!" ; ajuda ; exit ;;
    esac
    shift
done

# Verificação dos parâmetros ??
if [ ! -d "$PASTA" ] ; then
    echo "A pasta não foi encontrada."
    echo "Saindo sem fazer nada!"
    exit
else
    cd $PASTA
fi

# Operação
simular | tee .simula.tmp
simulateste=`cat .simula.tmp`
if [ -n "$simulateste" ] ; then
    echo -n "Deseja confirmar a operação? (S/n): "; read RESP 
    if [ $RESP = S ] || [ $RESP = s ] ; then
        renomear
        rm .simula.tmp
    else
        echo "Saindo sem fazer nada!"
        rm .simula.tmp
        exit
    fi
else
    echo "Não foram encontrados arquivos .png/.jpg"
    rm .simula.tmp
    exit
fi

Scripts recomendados

Controle de cópia de arquivos por tamanho

Gravar uma imagem ISO em um CD-RW

A-ImgMenus

Script simples para cálculos com dialog

Script para mostrar IP, usando zenity


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts