[Shell] Nombre de fichiers

Résolu
Bonjour,

Voilà mon problème.
J'ai dans un repertoire des fichiers, par exemple :
fichier23.txt, fichier.24.txt, fichier25.txt, ..., fichier234.txt

Je voudrais récupérer le premier nombre (ici 23), le dernier (ici 234) et vérifier que la suite n'est pas interrompue ...
Le tout en c-shell ...

Y aurait-il une ame charitable pour m'aider ?
Merci d'avance
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. Modérateur
    Salut,

    C'est pour du shell "bash", à adapter pour du shell "csh" :
    #! /bin/bash
    
    min=$(ls *.txt | grep -o '[0-9][0-9]*' | head -1)
    max=$(ls *.txt | grep -o '[0-9][0-9]*' | tail -1)
    j="$min"
    
    for i in $( ls *.txt | grep -o '[0-9][0-9]*')
    do
    if [ "$i" != "$j" ]
    then
    echo "Chaîne interrompue au fichier n° $j."
    exit 2
    else
    echo "Fichier n° $i => OK"
    fi
    j=$(expr $j + 1)
    done
    ;-))
    0
    1. Modérateur
      Le même en "csh" ;-))
      #! /bin/csh
      
      set min = `ls *.txt | grep -o '[0-9][0-9]*' | head -1`
      set max = `ls *.txt | grep -o '[0-9][0-9]*' | tail -1`
      set j = "$min"
      
      foreach i ( `ls *.txt | grep -o '[0-9][0-9]*'` )
      if ("$i" != "$j") then
      	echo "Chaîne interrompue au fichier n° $j."
      	exit 2
      else
      	echo "Fichier n° $i => OK"
      endif
      
      @ j++
      end
      0
      1. Merci beaucoup.
        C'est un problème entièrement résolu !
        Impeccable !!

        :))
        0