Contenu | Rechercher | Menus

Annonce

Le forum a une nouvelle maison !
Le forum a été migré sur un nouvel hébergement. Si jamais vous trouvez le moindre problème, n'hésitez pas à nous en faire part !
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".

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

AsTeR
Membre

[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
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

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

Hors ligne

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

AsTeR
Membre

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
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

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

Hors ligne

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

AsTeR
Membre

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