hoje vamos falar um pouco sobre shell script. O objetivo é criar um script, muito simples, que seja capaz de alterar a extensão de nossos arquivos.
Para testar, vamos criar em nosso diretório de testes os seguintes arquivos:
ChangeExtension.sh -> nosso script
First.txt -> arquivo para testes
Second.txt -> arquivo para testes
Bom, agora, vamos ao nosso script, que pega o nome os arquivos, e troca a sua extensão de acordo com os parâmetros passados a eles:
NUMBER_OF_ARGUMENTS=$#
ORIGINAL_EXTENSION=$1
NEW_EXTENSION=$2
if [ $NUMBER_OF_ARGUMENTS -ne 2 ]
then
echo "you need to pass two extensions like: ChangeExtension .txt .teste"
exit 1
fi
echo "Original Extension: " $ORIGINAL_EXTENSION
echo "New Extension: " $NEW_EXTENSION
for file in $(ls | awk -F"." '{print $1}')
do
if [ -e $file$ORIGINAL_EXTENSION ]
then
mv -v $file$ORIGINAL_EXTENSION $file$NEW_EXTENSION
fi
done
O que é feito é basicamente o seguinte:
1° - pegamos os argumentos passados passados pela linha de comando: $1 é o primeiro $2 é o segundo. $# é o número de argumentos.
2º - Testamos se o número de argumentos é válido
3° - Para cada arquivo com a extensão informada, a substituímos pela nova extensão.
Vamos a um exemplo:
Vamos renomear nossos arquivos de .txt para .old.txt
Apenas digitamos o comando: ./ChangeExtension.sh .txt .old.txt
Resultado:
ChangeExtension.sh -> nosso script, inalterado
First.old.txt Second.old.txt -> dois arquivos com a extensão alterada.
Bom, por hoje é isso