Detecter l extension d1 fichier avec 1 script

Résolu
Bonjour,

je voudrais avoir un script me permettant de connaitre l extension d'un fichier et d enlever celle ci afin de traiter le fichir et de le convertir vers un autre format....

pour l instant j utilise ceci mais ca ne marche paz si le nom de fichier contient des espace ou plusieurs points a la suite:

# $1 contient le nom de fichier
f=`basename $1`

cour=`exec echo $f 2> /dev/null |cut -d "." -f1`
i=2
ans=""
if [ "$f" == "$cour" ] ; then
echo "$cour"
else
while [ "$cour" != "" ] ; do
# faire action
if [ "$ans" != "" ] ; then
if [ "$nom" == "" ] ; then
nom=$ans
else
nom="$nom.$ans"
fi
fi
ans=$cour
echo "#$cour# $i"
# cour=`exec echo $f 2> /dev/null | cut -d "." -f$i`
cour=`exec echo $f | cut -d "." -f$i`
i=$(($i+1))

sleep 1
done
echo "$nom"
fi

si quelqu'un peut m aider....
merci

3 réponses

  1. Modérateur
    Salut,
    $ A="fichier.txt"; B="Mon fichier.doc"; C="Mon.beau.ficher.png"
    
    $ echo ${A%.*}
    fichier
    
    $ echo ${B%.*}
    Mon fichier
    
    $ echo ${C%.*}
    Mon.beau.ficher
    ;-))
    0
    1. Modérateur
      Oups... si tu veux récupérer que l'extension :
      $ echo ${A#*.}
      txt
      
      $ echo ${B#*.}
      doc
      
      $ echo ${C##*.}
      png
      ;-))
      0
      1. ok super simple en fait ... merci
        0