Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/02/2010, à 22:13

AsTeR

[Résolu] Sed pour modifier des fichiers de config

Bonjour à vous,

J'aimerais me faire un petit script pour faciliter le déploiement d'une application. L'idée ce serait après en avoir récupèré le contenu de modifier des fichiers de config pour la configurer comme il se doit.

J'aimerais être capable de chercher une ligne matchant une expression régulière et la précéder d'un commentaire '//' dans mon cas et chercher une ligne juste par un préfixe et la remplacer par une autre. J'ai du mal à trouver comment dire à sed que je veux m'arrêter à la ligne et ne pas aller plus loin.

Merci d'avance

AsTeR

Dernière modification par AsTeR (Le 21/02/2010, à 19:43)

Hors ligne

#2 Le 19/02/2010, à 23:57

nesthib

Re : [Résolu] Sed pour modifier des fichiers de config

ceci fait-il l'affaire ?

sed '0,/pattern/{/pattern/s#.*#//&#}' fichier

ajoute l'option -i à sed pour faire la modification dans le fichier


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 21/02/2010, à 19:42

AsTeR

Re : [Résolu] Sed pour modifier des fichiers de config

Merci ça m'a bien aidé, je trouve que sed est franchement incompréhensible.

Pour aide à ceux qui viendront, voici une commande pour remplacer une ligne concernant un paramètre params.user en lui donnant la valeur "toto" dans un fichier de config ini. Attention la valeur est directement modifiée dans le fichier.

sed -i 's/^params\.user.*$/params.user = "toto"/' monfichier.ini

Hors ligne

#4 Le 21/02/2010, à 20:28

nesthib

Re : [Résolu] Sed pour modifier des fichiers de config

meuh non c'est tout facile :

sed '0,/pattern/{/pattern/s#.*#//&#}' fichier

sed → bon c'est la commande
'…' → les commandes interprétées pas sed
0,/pattern/ → on travaille sur les lignes comprises entre le début et celle contenant le premier "pattern"
{} → sur les lignes précédentes on exécute les commandes entre {}
/pattern/ → on travaille sur les lignes contenant pattern (ici une seule étant donné la sélection prédédente)
/s#.*#//&# → sur ces lignes on substitue (s) le motif "la plus grande suite de n'importe quels caractères" (.*) (toute la ligne quoi) par lui même (&) précédé de //

voilà big_smile


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#5 Le 22/02/2010, à 23:10

AsTeR

Re : [Résolu] Sed pour modifier des fichiers de config

Je comprend mieux en tout cas wink Ca ne ressemble pas à la structure "typique" de ce que j'avais trouvé via notre ami Google.

Hors ligne