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 31/01/2011, 13h54   #1
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 36
Points : 25
Points : 25
Par défaut petit probleme avec une commande sed

Salut,
je n'arrive pas à finaliser une commande sed :
Code :
s/\(.*[^'].*\)lhs \(.*\) rhs/\1'lhs \2 rhs/
je voudrais qu'une apostrophe soit ajoutée entre lhs et rhs seulement si il n'y en a pas déjà une avant lhs
j'y arrive si l'apostrophe est juste avant lhs avec
Code :
s/\(.*\)[^']lhs \(.*\) rhs/\1'lhs \2 rhs/
qq1 pourrait m'aider?
pschiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 14h49   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
bonjour,

sans échantillon...
Code :
1
2
3
4
5
6
$ set +o histexpand
$ echo "def'abclhsfoobarrhs" | sed "/'.*lhs/!s/lhs\(.*\)rhs/lhs\1'rhs/"
def'abclhsfoobarrhs
$ echo "defabclhsfoobarrhs" | sed "/'.*lhs/!s/lhs\(.*\)rhs/lhs\1'rhs/"
defabclhsfoobar'rhs
$ set -o histexpand
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/01/2011, 16h13   #3
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 36
Points : 25
Points : 25
Merci beaucoup de ton aide,
j'ai pu faire un script.sed pour refactorer en masse mon code mais par contre sed me renvoie tous sur l'écran.
Suis-je obligé de faire une indirection sur un fichier où y a t il une commande pour enregistrer dans le meme fichier?
pschiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 16h23   #4
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
si tu disposes de GNU sed, regarde l'option -i (--in-place)
sinon, il faut effectivement rediriger la sortie de sed vers un fichier temporaire.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 16h35   #5
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 36
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 36
Points : 25
Points : 25
ok
merci, je pense qu'il va falloir que j'installe cygwin, ce sera plus facile, je pourrais créer un ptit script bash.
pschiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h43.


 
 
 
 
Partenaires

Hébergement Web