Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

Alain.g a écrit :

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 smile

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

Totor a écrit :

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