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.775 ]

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

Detectar sistemas operacionais dos dispositivos na rede via TTL

Ripar dvd

Acertando número para numeração

Ativa e dasativa o XGL para o KDE

Import com timer


  

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