Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 19/02/2010, à 23: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, à 20:43)

Hors ligne

#2 Le 20/02/2010, à 00: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, à 20: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, à 21: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 23/02/2010, à 00: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

Haut de page ↑