Testar se o arquivo é de uma determinada extensão (independente se em maiúsculo ou minúsculo) [RESOL

1. Testar se o arquivo é de uma determinada extensão (independente se em maiúsculo ou minúsculo) [RESOL

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 04/08/2017 - 18:18h

Como faço para testar se um arquivo é de uma determinada extensão (independentemente da extensão estar digitada em maiúsculo ou minúsculo)?

por exemplo,
find . -maxdepth 1 -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" | sort $srt > "$ltmp"

while read f
do
if [ ........] # testar se é .jpg ou .JPG ou .jPg ou...
then

fi
done < $ltmp



  


2. Re: Testar se o arquivo é de uma determinada extensão (independente se em maiúsculo ou minúsculo) [RESOL

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 04/08/2017 - 18:32h

raserafim escreveu:

Como faço para testar se um arquivo é de uma determinada extensão (independentemente da extensão estar digitada em maiúsculo ou minúsculo)?

por exemplo,
find . -maxdepth 1 -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" | sort $srt > "$ltmp"

while read f
do
if [ ........] # testar se é .jpg ou .JPG ou .jPg ou...
then

fi
done < $ltmp


v aí se algum dos exemplos te ajuda
https://stackoverflow.com/questions/1728683/case-insensitive-comparison-of-strings-in-shell-script


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



3. Re: Testar se o arquivo é de uma determinada extensão (independente se em maiúsculo ou minúsculo) [RESOL

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/08/2017 - 00:47h

Use o comando "file".
Exemplo:
file *.*
ARQ.txt: ASCII text
brasao2.gif: GIF image data, version 89a, 463 x 468
brasao2.GIF: GIF image data, version 89a, 463 x 468

att.:
marcelo oliver


4. Re: Testar se o arquivo é de uma determinada extensão (independente se em maiúsculo ou minúsculo) [RESOL

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 05/08/2017 - 11:42h

msoliver escreveu:

Use o comando "file".
Exemplo:
file *.*
ARQ.txt: ASCII text
brasao2.gif: GIF image data, version 89a, 463 x 468
brasao2.GIF: GIF image data, version 89a, 463 x 468


msoliver, não sei se consegui entender a sugestão.

com esse seu código seria possível saber se um arquivo se trata realmente de um determinado "tipo", observando o seu conteúdo, e não a sua extensão!

seria isso?

se for isso, é algo interessante...

no entanto, extrapola o grau de complexidade do que preciso.

necessito apenas de uma forma simples para verificar se o nome de um arquivo presente em uma variável tem uma determinada extensão.

sendo que preciso que essa verificação ignore se o nome do arquivo foi escrito em maiúsculo ou minúsculo.




5. Re: Testar se o arquivo é de uma determinada extensão (independente se em maiúsculo ou minúsculo) [RESOL

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 05/08/2017 - 11:58h


Ainda vou testar...

mas parece que no link que você sugeriu há duas alternativas interessantes..!

1-
if [ "${var1,,}" = "${var2,,}" ]; then
echo ":)"
fi
os dois parâmetros da comparação são convertidos em minúsculos e, então, é comparado.


2-
var=True
typeset -l var
if [[ $var == "true" ]]; then
print "match"
fi
converte o conteúdo da variável para minúsculo (-l para minúsculas e -u para maiúsculas) e, então, compara.

ambos devem resolver!!

obrigado Mauriciodez!



6. Re: Testar se o arquivo é de uma determinada extensão (independente se em maiúsculo ou minúsculo) [RESOL

Rodrigo Albuquerque Serafim
raserafim

(usa Slackware)

Enviado em 07/08/2017 - 17:20h

raserafim escreveu:

mas parece que no link que você sugeriu há duas alternativas interessantes..!

1-
if [ "${var1,,}" = "${var2,,}" ]; then
echo ":)"
fi
os dois parâmetros da comparação são convertidos em minúsculos e, então, é comparado.


2-
var=True
typeset -l var
if [[ $var == "true" ]]; then
print "match"
fi
converte o conteúdo da variável para minúsculo (-l para minúsculas e -u para maiúsculas) e, então, compara.

ambos devem resolver!!

ambos os métodos convertem o valor de uma variável para minúsculo; e então posso comparar com o texto de uma string também em minúsculo!!

para comparar apenas a extensão é necessário ainda, nesse meu código, extrair da variável que contém o nome do arquivo apenas a sua extensão.

consegui extrair a extensão com o seguinte código (ilustração):

find . -maxdepth 1 -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" | sort $srt > "$ltmp"

while read f
do
typeset -l ext
ext=$(echo $f | rev | cut -c 1-3 | rev)

if [ "$ext" == "jpg" ] # testar se é .jpg ou .JPG ou .jPg ou...
then

fi
done < $ltmp










Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts