Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como obter o nome de um arquivo sem a extensão?

Eu não conhecia o comando awk para dividir um texto com base em um delimitador. Gostei bastante de ter aprendido mais esta ferramenta. Por curiosidade, vi que o comando basename nos permite obter o nome de um arquivo sem sua extensão, bastando que passemos a opção -s seguida da extensão que desejamos remover, tal como no exemplo abaixo:

basename  -s .jpg ~/CursoShellScripting/LojaVirtual/CapasLivros/algoritmos.jpg

Com isso, pude atualizar meu script, deixando-o mais simples:

#!/bin/bash

# Navega para o diretório especificado
cd ~/CursoShellScripting/LojaVirtual/CapasLivros

# Percorre os arquivos com extensão .JPG do diretório atual
for arq in *.jpg
do
    # Extrai o nome do arquivo sem a extensão
    nome_arq=$(basename -s .jpg $arq)

    # Realiza a conversão de JPG para PNG
    convert $nome_arq.jpg $nome_arq.png
done
1 resposta
solução!

Oi Diego, tudo ben?

Fico feliz em saber que você aprendeu sobre o comando basename e como utilizá-lo para obter o nome de um arquivo sem a extensão. É realmente uma ferramenta útil no Shell Scripting.

No exemplo que você compartilhou, o comando basename -s .jpg ~/CursoShellScripting/LojaVirtual/CapasLivros/algoritmos.jpg retorna o nome do arquivo "algoritmos" sem a extensão ".jpg". Isso é muito útil quando você precisa manipular arquivos em um script, como no caso em que você converte arquivos JPG para PNG.

Muito obrigada por compartilhar com a gente!

Um abraço e bons estudos.