merci à tous les deux.
Pour le "source" permettant d'utiliser mes fonctions dans un autre fichier, c'est nikel. Par contre pour le case et pour le if, cela ne fonctionne pas, mais vous m'avez fournis une bonne piste que je vais exploiter.
Je l'ai modifier mais ce n'est pas encore ça. Il doit supprimer les chiffres et les caractère .;- et l'espace puis me compter le nombre de caractère restant :
if [ $(sed -r 's/-|[0-9]|;| |\.//g' <<< ${branche[$j]} ) -gt 2 ]; then
Avec l'adresse ip suivante : 192.168.12.5
Pour le cas 1 je ne souhaite que : 192
cas 2 : 192.168
cas 3 192.168.5
JE suis ok pour le cas 4 c'était stupide de ma part.
1 2 3 4 5 6
| case $1 in
1) Noeud=${2%%.*};;
2) Noeud=${2%.*}; Noeud=${Noeud%.*};;
3) Noeud=${2##*};;
4) Noeud=$2;;
esac |
Et si je veux connaitre le nombre de point d'une chaine je fais :
if (( 5 == $(( $( echo $( echo ${branche[$j]} | tr -d "-" | tr -d "0" | tr -d "1"| tr -d "2"| tr -d "3"| tr -d "4"| tr -d "5"| tr -d "6"| tr -d "7" | tr -d "8" | tr -d "9" | tr -d ";" | tr -d " " ) | wc -m ) - 1 )) ));then
Sur le même principe des expressions régulières ça dois s'optimiser mais je ne suis pas très familier au regex.
Partager