Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2007, 18h21   #1
Membre du Club
 
Inscription : mars 2006
Messages : 158
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 158
Points : 48
Points : 48
Par défaut Sed et antislash

Bonjour,

j'ai essayé pas mal de combinaisons pour que le caractère \ ne soit pas interprété comme autre chose qu'un simple mot (\\, '\', "\", etc), et ça ne marche pas. Voici la ligne en question :

Code :
sed -e "s/%Expr1%/%Expr2%\Expr3/g" fichier_txt1 > fichier_txt2
Donc la présence de cet \ entre %Expr2% et Expr3 remplace Expr1 par :

au lieu de

Comment résoudre ce problème proprement svp ? Merci
eZula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 20h32   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
c'est '\\\' pour en faire 1
dans une expression SED....

\\ en crée un qui permet de ne pas interpréter le caractère \

exemple :
Code :
1
2
3
ois@debian:~$ echo 'toto\tutu' | sed "s/\\\/+/"
toto+tutu
ois@debian:~$
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 20h41   #3
Membre du Club
 
Inscription : mars 2006
Messages : 158
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 158
Points : 48
Points : 48
Merci bien frp31

Code :
sed -e "s/%Expr1%/%Expr2%\\\Expr3/g" fichier_txt1 > fichier_txt2
renvoie le résultat attendu :

eZula est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h33.


 
 
 
 
Partenaires

Hébergement Web