Shell: Remplacement chaine caractère

Résolu
Lales -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,

Je cherche a modifier une chaine de caractère en shell. Cette chaine de caractère débute et finie par deux occurrences de %. Je voudrais remplacer %chaine% par "$chaine"

En gros, voila une ligne que j'ai:

%MOT1%/%MOT2% > %MOT3%MOT4

et voila ce que je souhaite:

"$MOT1"/"$MOT2" > "$MOT3"MOT4
A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,
[rep]$ cat plop
%MOT1%/%MOT2% > %MOT3%MOT4

[rep]$ sed 's/\(%\)\(.[^%]*\)\(%\)/"$\2"/g' plop
"$MOT1"/"$MOT2" > "$MOT3"MOT4

[rep]$
;-))
1
Lales
 
Merci Jipicy

J'avais fait un truc qui marchait mais qui avais une sale tête!!
Ton instruction est beaucoup plus belle!!

Merci encore

A++
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Pour moi MOT4 est aussi une variable sinon ça ne rime pas avec la comparaison >
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Non, il faut tenir compte juste que de :
Je voudrais remplacer %chaine% par "$chaine"

et pas de :
Cette chaine de caractère débute et finie par deux occurrences de %.
qu'il faut traduire je pense par ;
Cette chaine de caractère débute et finie par une occurrence de %.

;-))
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
 
Salut,

Ce n'était pas pour toi le message ;-))
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896 > lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
 
Re-

Ce n'est pas forcément une comparaison, si ?

PS. Mais il est vrai que le DOS c'est loin, très loin ;-(
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
 
Re,

Il me semblais un peu longue ta regex ;-))
$ echo '%MOT1%/%MOT2% > %MOT3%MOT4'| sed 's/\(%\)\(.[^%]*\)\(%\)/"$\2"/g'
"$MOT1"/"$MOT2" > "$MOT3"MOT4
$ echo '%MOT1%/%MOT2% > %MOT3%MOT4'| sed 's/%\([^%]*\)%/"$\1"/g'
"$MOT1"/"$MOT2" > "$MOT3"MOT4

0