[Shell] Nombre de fichiers

Résolu
xavdoug Messages postés 21 Date d'inscription   Statut Membre -  
xavdoug Messages postés 21 Date d'inscription   Statut Membre -
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. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  3. xavdoug Messages postés 21 Date d'inscription   Statut Membre
     
    Merci beaucoup.
    C'est un problème entièrement résolu !
    Impeccable !!

    :))
    0