Forum Programmation.shell galere sur un script

Posté par  .
Étiquettes : aucune
0
18
sept.
2007
bonjour ,
j'utilise ceci dans un script :

for i in `seq 0 32`;
if [ "$(sed '/^[ ]*#\|#\|^$\|^\n*$/d' $file | grep c${i} | wc -l)" -gt "0" ]
then
j=$(($i+1))
sed -i -e '/\<hoplahop\>/a \temp c'${i}' = variable['$j']' $file
fi
done

ce bout de code doit parcourir le fichier , me compte le nombre de "c+un_chiffre" qu'il trouve , et si il en trouve plus que 0 il me le declare juste en dessous de la ligne qui contient "hoplahop"
ça fonctionne à une chose près : lorsqu'il croise par exemple "c0.x" il ne me le comptabilise pas , il ne me compte que les "c0" san rien d'autre devant ou derriere (c0 par exemple peut etre c0.x, c0.y, c0.z ou encore etre negatif comme par exemple -c0.x, -c1.z)

quelqu'un a t'il une idée pour m'aider???
merci d'avance
  • # en fait nan

    Posté par  . Évalué à 1.

    c'est bon , simple erreur d'inattention dans mon code

    bonne journée
  • # leger ?

    Posté par  . Évalué à 2.


    for i in `seq 0 32`;
    if [ "$(sed '/^[ ]*#\|#\|^$\|^\n*$/d' $file | grep c${i} | wc -l)" -gt "0" ]
    then
    j=$(($i+1))
    sed -i -e '/\<hoplahop\>/a \temp c'${i}' = variable['$j']' $file
    fi
    done


    comme dans les precedents posts doit pouvoir etre remplacé par


    for i in `seq 0 32`;
    if [ "$(sed '/^[ |#|\n|\t]*$/d' $file | grep c${i} | wc -l)" -gt "0" ]
    then
    j=$(($i+1))
    sed -i -e '/\<hoplahop\>/a \temp c'${i}' = variable['$j']' $file
    fi
    done

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.