Tester le format d'un fichier en entrée

ima -  
 Utilisateur anonyme -
Bonjour,

Je voudrais tester le format du nom de mon fichier en entrée.

Par exemple j'ai le nom du fichier sous ce format:

CodeClient-CodeFlux-CodeCompte-Date.XLS

Je dois vérifier :

- l'extension: PDF, XLS, CSV, ZIP, TXT

- le format: si j'ai 4 codes séparés par des tirets (les codes peuvent être vides mais séparés par -)

Merci de votre retour.

3 réponses

  1. zone-virtuelle Messages postés 154 Statut Membre 8
     
    Salut !
    Tu voudrai créer un programme permettant de faire ça ?
    0
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    - l'extension: PDF, XLS, CSV, ZIP, TXT
    Voir man bash - Développement des paramètres

    - le format: si j'ai 4 codes séparés par des tirets (les codes peuvent être vides mais séparés par -)
    Suffit de compter le nombre de "-" (man grep, man wc).
    0
    1. ima
       
      Bonjour zipe31,

      Je crois que ce n'est pas respectable de fermer une discussion sans avoir de solutions !
      Je répondrais que c'est ok que lorsque mon pb est résolu !

      Merci
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Elle n'est pas fermée celle-ci à ce que je sache ?

      Qu'est-ce qui te gène dans celle là ?
      0
    3. ima
       
      rien, en tout cas j'ai réussi à le faire
      merci
      0
    4. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      en tout cas j'ai réussi à le faire
      Content pour toi, mais il eut été plus sympa de ta part de nous en donner la solution ;-(
      0
    5. ima
       
      Oh pas de pb:

      ExtensionFichier='echo $line | cut -d"." -f2 '

      IF [ $ExtensionFichier != "xls" ] && [ $ExtensionFichier != "csv" ] && [ $ExtensionFichier != "pdf" ] && [ $ExtensionFichier != "txt" ] && [ $ExtensionFichier != "zip" ]

      THEN echo "Extension fichier incorrect"
      FI

      Voilà :)
      0
  3. Utilisateur anonyme
     
    salut,

    en bash, avec la correspondance élargie des motifs du Développement des noms de fichiers, que permettent aussi les crochets doubles

    $ monfichier=blabla.xls 
    $ [[ $monfichier != *.@(xls|csv|pdf|txt|zip) ]] && echo error 
    $ monfichier=blabla.xls.autre 
    $ [[ $monfichier != *.@(xls|csv|pdf|txt|zip) ]] && echo error 
    error 
    $ monfichier=blabla.csv 
    $ [[ $monfichier != *.@(xls|csv|pdf|txt|zip) ]] && echo error 
    $ 
    0