Sed sauf derniere occurrence

Le
Ozzii
Bonjour,
je n'arrive pas à trouver comment faire.
Comment faire (avec un sed par exemple). pour substituer tout les "." sauf =
le dernier..
A="truc.truc1.extension"
B=`echo "$A"|sed 's/./ /g'`
Donc dans B j'ai "truc truc1 extension"
Cependant j'aurais besoin d'avoir "truc truc1.extension"
Si cela peut faciliter je peut avoir une variable avec la liste des extensi=
ons: EXT="extension ext2 ext3"

Donc: comment substituer sauf la dernière occurrence?

Merci par avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stephane Chazelas
Le #24320411
2012-03-13 05:33:40 -0700, Ozzii:
Bonjour,
je n'arrive pas à trouver comment faire.
Comment faire (avec un sed par exemple). pour substituer tout les "." sauf le dernier.....
A="truc.truc1.extension"
B=`echo "$A"|sed 's/./ /g'`
Donc dans B j'ai "truc truc1 extension"
Cependant j'aurais besoin d'avoir "truc truc1.extension"
Si cela peut faciliter je peut avoir une variable avec la liste des extensions: EXT="extension ext2 ext3"

Donc: comment substituer sauf la dernière occurrence?


[...]

sed -e :1 -e 's/.(.*.)/ 1/;t1'

--
Stephane
Ozzii
Le #24320401
En fait je viens de trouver:
Je change juste la dernière occurrence avec:
sed 's/(.*) /1./'

Merci quand même...
Ozzii
Le #24320661
Merci Stephane..
C'est vrai que je ne le comprend pas trop mais il fonctionne. C'est ça l' important.
Hugues
Le #24320831
Coucou à tous,

Ce cher Ozzii
Merci Stephane..
C'est vrai que je ne le comprend pas trop mais il fonctionne. C'est ça l'important.



Pour la compréhension, le man de sed est très instructif :-)
Tu as juste à voir les commandes ":", et "t" ..

--
Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Hugues
Le #24320821
Tagazok à vous,

Ce cher Stephane Chazelas

sed -e :1 -e 's/.(.*.)/ 1/;t1'



Pourquoi utiliser -e ?
C'est bien strictement équivalent à :

sed ':1;s/.(.*.)/ 1/;t1'

ou bien une subtilité m'échappe ?

--
Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Ozzii
Le #24321111
Chez moi ce sed ne fonctionne pas.
J'ai: Label too long: :1;s/.(.*.)/ 1/;t1
Stephane Chazelas
Le #24321311
2012-03-13 16:41:11 +0100, Hugues:

Tagazok à vous,

Ce cher Stephane Chazelas >
> sed -e :1 -e 's/.(.*.)/ 1/;t1'

Pourquoi utiliser -e ?
C'est bien strictement équivalent à :

sed ':1;s/.(.*.)/ 1/;t1'

ou bien une subtilité m'échappe ?


[...]

Pas standard. Les commandes :, t, b, } et d'autres doivent etre
suivi d'un n ou etre la derniere command de l'expression.

Voir details a
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html

--
Stephane
Hugues
Le #24321361
Ce cher Stephane Chazelas
2012-03-13 16:41:11 +0100, Hugues:

Tagazok à vous,

Ce cher Stephane Chazelas >
> sed -e :1 -e 's/.(.*.)/ 1/;t1'

Pourquoi utiliser -e ?
C'est bien strictement équivalent à :

sed ':1;s/.(.*.)/ 1/;t1'

ou bien une subtilité m'échappe ?


[...]

Pas standard. Les commandes :, t, b, } et d'autres doivent etre
suivi d'un n ou etre la derniere command de l'expression.



Ok. Donc on peut éventuellement continuer sur la ligne suivante.
Mais l'utilisation des multiples -e '..' me semble effectivement plus logique, du coup.

Voir details a
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html



K, thx, bye ! :)

--
Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Ozzii
Le #24322781
Merci à tout les deux pour votre aide.
Cyrille Lefevre
Le #24328661
Le 14/03/2012 13:06, Ozzii a écrit :
Merci à tout les deux pour votre aide.



Bonjour,

pour mémoire : http://sed.sourceforge.net/grabbag/

pour awk, c'est : http://awk.info

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Publicité
Poster une réponse
Anonyme