Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1389 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Remplacer chaine (un peu complexe) par une autre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Remplacer chaine (un peu complexe) par une autre

n°1199929
nuitn0ire
Posté le 19-02-2010 à 14:21:39  profilanswer
 

Hello,
 
dans un fichier, je voudrais remplacer :  
 
/* #include "xxdb.h" */
 
par :
 
/* #include "xxdb.h" */  
#include <ldapdb.h>

 
Pour ce faire, j'ai essayé ceci :
 
sed -e "s/\\/* #include "xxdb.h" *\//\\/* #include "xxdb.h" *\/ #include <ldapdb.h>/g" /usr/src/bind9-9.6.1.dfsg.P3/bin/named/main.c > /usr/src/bind9-9.6.1.dfsg.P3/bin/named/main.c.tmp && mv -f /usr/src/bind9-9.6.1.dfsg.P3/bin/named/main.c.tmp /usr/src/bind9-9.6.1.dfsg.P3/bin/named/main.c
 
Mais ça ne change rien.. Pas de message d'erreur, c'est juste que mon fichier n'est pas changé.
 
quelqu'un aurait une idée ?

mood
Publicité
Posté le 19-02-2010 à 14:21:39  profilanswer
 

n°1199931
wedgeant
Da penguin inside
Posté le 19-02-2010 à 14:33:40  profilanswer
 

man sed, option "-i" :jap:
 
de rien :o


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1199933
nuitn0ire
Posté le 19-02-2010 à 14:45:16  profilanswer
 

Merci, mais à vrai dire le retour à la ligne n'est pas mon plus gros problème... ce qui m'embête surtout c'est de lui faire reconnaitre tous les caractères spéciaux là.

n°1199935
wedgeant
Da penguin inside
Posté le 19-02-2010 à 14:50:58  profilanswer
 

retour à la ligne ? [:petrus dei]
 
l'option -i permet de faire de la modification "live" sur le fichier que tu passes à sed, sans utiliser de fichier intermédiaire ... j'ai même pas regardé ce que tu cherchais à modifier :o
 
le sed -e "truc" fichier1 > fichier 2 && mv fichier2 fichier1 c'est quand même particulièrement crade :o


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°1199963
nuitn0ire
Posté le 19-02-2010 à 15:41:08  profilanswer
 

wedgeant a écrit :

retour à la ligne ? [:petrus dei]
 
l'option -i permet de faire de la modification "live" sur le fichier que tu passes à sed, sans utiliser de fichier intermédiaire ... j'ai même pas regardé ce que tu cherchais à modifier :o
 
le sed -e "truc" fichier1 > fichier 2 && mv fichier2 fichier1 c'est quand même particulièrement crade :o


 
t'as tout à fait raison, je pige pas trop où j'avais la tête..
 
Bon, j'ai trouvé un début de réponse :
 
sed -e "s/\\/\* \#include \"xxdb.h\" \*\//\\/\* \#include \"xxdb.h\" \*\/ \#include \<ldapdb.h\> /g" /usr/src/bind9-9.6.1.dfsg.P3/bin/named/main.c
 
Ca fait ce que je veux, mais sur une ligne.. je voudrais avoir mon include à la ligne suivante. Déjà que le truc avant je sais pas comment je me suis débrouillé pour le pondre..

n°1199995
limax
Posté le 19-02-2010 à 16:38:23  profilanswer
 

bonjour
 
utilise \n pour newline je crois.  
(astuce pour vim: tu tapes ctrl+v  Entrée   et tu as le code que tu veux pour l'expression régulière)
 
Donc  sed -e "s/\(\/\* #include \"xxdb.h\" \*\/\)/\1\n#include \<ldapdb.h\>/"  etc....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Remplacer chaine (un peu complexe) par une autre

 

Sujets relatifs
[Bash] Eliminer une sous-chaine de caractere dans une chaine de caract[postfix] Remplacer une adresse lors de l'envoi
[KSH]Enlever $ situé en fin de chaine s'il existe [HELP]Linux pour remplacer un windows lent
Gestionnaire de connexion SSH/telnet (remplacer secure crt)[Résolu] Test chaine de caractères avec Shell : Help !
Recherche chaine dans un fichier texte avec script shell[bash] remplacer une chaine sed, perl ...
rechercher la chaine de caractère $(function() { dans un fichier 
Plus de sujets relatifs à : Remplacer chaine (un peu complexe) par une autre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR