[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. Merci beaucoup.
    C'est un problème entièrement résolu !
    Impeccable !!

    :))
    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
      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
        ;-))