Commande File

Salut,

Je voudrais savoir comment je peux renommer un fichier (par exemple de type text) avec un if et la commande file.

Par exemple, j'ai fichier toto, je veux lui dire si le fichier est de type text alors renomme le toto.txt

J'utilise la commande file :

if [file toto est de type text]; then

mv toto toto.txt

fi


Je ne vois pas comment exprimer la partie : est de type text ???

Merci pour votre aide

3 réponses

  1. Salut,

    Il s'agit d'un script shell en Bash pour Linux.

    Merci
    1. Modérateur
      Hello,
      Tu peux t'inspirer de ce code:
       
      johand@osiris:~/src/bash$ cat a.b.c  
      Hello 
      johand@osiris:~/src/bash$ cat myrename.sh  
      #!/bin/sh 
      [ $# -eq  1 ] || exit 1 
      BASE=${1%.?*} 
      MIMETYPE=$(file -i "$1" | cut -d " " -f2| cut -d ";" -f1) 
      #echo ${MIMETYPE} 
      M1=${MIMETYPE%%/?*}  
      M2=${MIMETYPE##?*/} 
      echo "M1: ${M1}" 
      echo "M2: ${M2}" 
      case "$M1" in 
       "text") 
        mv "$1" "${BASE}.txt" 
       ;; 
       *) 
        echo "Tu développes toi-même" 
       ;; 
      esac 
      
      
      johand@osiris:~/src/bash$ ./myrename.sh a.b.c  
      M1: text 
      M2: plain 
      johand@osiris:~/src/bash$ ls -ltr| tail -1 
      -rw-r--r-- 1 johand johand    6 13 fév 09:12 a.b.txt 
      
      

      Tu complètes ton script en effectuant les "case" appropriés seln tes envies.
      Johan
      Gates gave ^H sold you the windows.
      GNU gave us the whole house.(Alexandrin)