Salut,
j'ai une chaine:
SNMPv2-SMI::enterprises.3582.1.1.3.1.7.0.0.0
je voudrais la renverser, pour recuperer le 0 à la fin. Le probleme c'est que je ne peux pas utiliser tr car la j'ai du texte, mais c'est pas forcement toujours le cas suivant les machines. Donc la solution que je trouve la plus pratique est d'inverser la chaine, de faire un cut -d "." -f1 pour recuprer la derniere valeur (qui n'est pas forcement 0).
sort joue seulement avec des lignes et pas avec des caractères donc je ne sais pas comment y arriver. Il faudrait que ca reste en bash (je pourrais utiliser du perl ou autre mais je ne prefere pas).
Est ce que quelqu'un à une idée ? Connait une option miracle ?
Merci d'avance !
# OK OK OK
Posté par DjinnS . Évalué à 4.
;)
[^] # Re: OK OK OK
Posté par chtitux (site web personnel) . Évalué à 2.
echo SNMPv2-SMI::enterprises.3582.1.1.3.1.7.0.0.0 | rev | cut -c -1
(prends le dernier caractere de la chaîne)
# Pourquoi la renverser ?
Posté par netsurfeur . Évalué à 3.
sed fait ça très bien
echo SNMPv2-SMI::enterprises.3582.1.1.3.1.7.0.0.0 | sed 's/.*\.\([0-9]*\)$/\1/'
0
Ca évite en plus de devoir inverser le résultat s'il est supérieur à 9
[^] # Re: Pourquoi la renverser ?
Posté par tgl . Évalué à 3.
% plop="SNMPv2-SMI::enterprises.3582.1.1.3.1.7.0.0.0"
% echo ${plop##*.}
0
(question de goût, mais c'est vraiment infiniment plus rapide si jamais il y a beaucoup de lignes à traiter en boucle)
[^] # Oui en bash ( forme générale )
Posté par Frederic Brugmans . Évalué à 1.
brol="SNMPv2-SMI::enterprises.3582.1.1.3.1.7.0.0.0"
echo ${brol:${#brol}-1:1}
[^] # Re: Oui en bash ( forme générale )
Posté par tgl . Évalué à 2.
% echo "${plop#${plop%?}}"
C'est donc "la chaine privée d'un préfixe qui correspond à la chaine privée de son dernier caractère".
Et puis aussi, en Bash-3 avec une regexp, pour garder tous les derniers chiffres si c'est bien par des chiffres que la chaine termine :
% [[ "${plop}" =~ "[0-9]+$" ]] && echo "${BASH_REMATCH}"
(pratique parceque tu peux en même temps gérer les chaines incorrectes avec un if/then/else)
Bref, que de solutions... :)
# man tail ?
Posté par doublehp (site web personnel) . Évalué à 0.
?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.