#1 Le 24/06/2008, à 13:00
- Slashman
[résolu]Sed : Récupérer les 2 derniers caractères d'une chaine
Hello,
J'essaye désespérément de trouver la bonne commande permettant d'obtenir les 2 dernier caractères d'une chaîne avec sed.
Il me semblait que c'était un truc du genre
echo -e "test" |sed 's/(.)2$//'
Mais ça ne fonctionne pas.
est-ce que quelqu'un aurait la bonne commande ?
Dernière modification par Slashman (Le 24/06/2008, à 14:01)
Hors ligne
#2 Le 24/06/2008, à 13:20
- wblitz
Re : [résolu]Sed : Récupérer les 2 derniers caractères d'une chaine
echo -e "test" |sed 's/.*\(..\)$/\1/'
"Un optimiste, c'est un homme qui plante deux glands et qui s'achète un hamac" - Jean de Lattre de Tassigny
Pensez à mettre [RÉSOLU] dans le sujet de vos posts une fois qu'ils le sont...
quelques docs
Hors ligne
#3 Le 24/06/2008, à 13:20
- Mr.Alexandre
Re : [résolu]Sed : Récupérer les 2 derniers caractères d'une chaine
"TAIL fais ça trés bien:
echo -e "test" | tail -c3
...et hop...:cool:
"On ne peut porter le flambeau de la verité au milieu d'une foule, sans roussir quelques barbes!" Georg-Christoph Lichtenberg
Hors ligne
#4 Le 24/06/2008, à 13:21
- Totor
Re : [résolu]Sed : Récupérer les 2 derniers caractères d'une chaine
avec sed :
echo "test"|sed "s/^.*\(.\{2\}\)$/\1/"
avec grep :
echo "test"|grep -o ".\{2\}$"
-- Lucid Lynx --
Hors ligne
#5 Le 24/06/2008, à 13:30
- Nicobol
Re : [résolu]Sed : Récupérer les 2 derniers caractères d'une chaine
J'avais awk aussi, mais j'arrive un peu tard avec bien compliqué...
Tant pis, je le mets quand même, ça pourra servir pour une autre partie de la chaine de caractère :
echo test | awk '{print substr($0,length($0)-1,2)}'
Hors ligne
#6 Le 24/06/2008, à 13:32
- Alain.g
Re : [résolu]Sed : Récupérer les 2 derniers caractères d'une chaine
en bash :
var="test"
echo "${var: -2}"
(bien laisser l'espace avant le "-")
Xubuntu Karmic !
Hors ligne
#7 Le 24/06/2008, à 13:40
- Totor
Re : [résolu]Sed : Récupérer les 2 derniers caractères d'une chaine
en bash :
var="test" echo "${var: -2}"
(bien laisser l'espace avant le "-")
est-on obligé de passer par une variable pour utiliser cette notation ?
-- Lucid Lynx --
Hors ligne
#8 Le 24/06/2008, à 14:01
- Slashman
Re : [résolu]Sed : Récupérer les 2 derniers caractères d'une chaine
merci à tous pour toutes ces réponses
Hors ligne
#9 Le 24/06/2008, à 17:11
- Alain.g
Re : [résolu]Sed : Récupérer les 2 derniers caractères d'une chaine
est-on obligé de passer par une variable pour utiliser cette notation ?
Je ne vois pas comment on pourrait faire autrement.
Sinon avec expr :
expr "test" : '.*\(..\)'
Xubuntu Karmic !
Hors ligne
#10 Le 24/06/2008, à 21:58
- Totor
Re : [résolu]Sed : Récupérer les 2 derniers caractères d'une chaine
ben en fait, quand j'ai posé la question, j'avais en tête cette discussion : http://forum.ubuntu-fr.org/viewtopic.php?id=231038
et je ne comprenais pas pourquoi ${{}:2} ne fonctionnait pas.
mais à y réfléchir, ma question est absurde dans le sens où :
- si on utilise pas de variable mais directement un texte, c'est que normalement, on connait le résultat.
- dans le cadre de la discussion à laquelle je pensais, c'est normal que ça ne fonctionne pas car -exec exécute un script mais n'interprète une instruction...
Dernière modification par Totor (Le 24/06/2008, à 21:58)
-- Lucid Lynx --
Hors ligne