2011-10-25 6 views

Répondre

2
for f in test*.out; do 
    number=${f#test*.} 
    number=${number%.*} 
    echo $f has middle number $number 
done 
2
sed -r 's/^test[[:alnum:]]*\.([[:digit:]]+)\.out$/\1/' 

alternative (Une version plus courte de la BASH boucle):

awk -F '.' '{print $2}' 
2

Selon la version de Bash cela pourrait fonctionner aussi:

test=test1.1024.out 
if [[ $test =~ ^test[A-Za-z0-9]+\.([0-9]+)\.out$ ]]; then 
     echo ${BASH_REMATCH[1]} 
fi