|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 1 ![]() |
Bonjour,
J'ai un fichier toto.dat dont une ligne est la suivante : A= valeur1 #blabla où valeur1 est un entier inconnu (disons que je souhaite que le sed marche qq soit valeur1). Je souhaiterais remplacer valeur1 par valeur2 qui est contenue dans la variable var2 (en respectant les espaces). J'ai essayé sed -e "/A= */A= $var2/" mais ça remplace la ligne par : A= valeur1valeur2 #blabla Merci beaucoup d'avance si quelqu'un peut me donner la solution ! |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : janvier 2007 Messages : 67 ![]() |
Solution: on peut utiliser les parenthèses pour délimiter une partie du texte, comme suit:
Code :
cat fichier | sed "s|A=\(.*\)#|A=$a#|g" Code :
cat fichier | sed "s|A=\(.*\)#|A=$a\1#|g" Limitation de la solution: il faut pas que "blabla.." contient "#", sinon ç'est le dernier "#" qui est considéré! |
|
|
00
|
|
|
#3 | ||||
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Autre possibilité
http://www.shellunix.com/regexp.html Code :
Code :
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com