GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser sed pour remplacer la variable d'un fichier de configuration ?

Vous pouvez essayer ce sed :

sed -i.bak 's/^\(VAR5=\).*/\1VALUE10/' file

Cela donne :

VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE10
VAR6=VALUE6

Même si la réponse a été ajoutée à la question. J'ai passé du temps sur son fonctionnement, j'aimerais ajouter quelques faits et ma version de la réponse,

sed -i 's,^\(THISISMYVARIABLE[ ]*=\).*,\1'THISISMYVALUE',g' config.cfg

Explication :

  • Comme base de sed 's/find_this/replace_with/' , nous disons sed pour rechercher et remplacer. Rappelez-vous également qu'il existe plusieurs autres délimiteurs que nous pouvons utiliser à la place de / . Ici , est utilisé.
  • Ici, nous trouvons la ligne qui correspond à ^\(THISISMYVARIABLE[ ]*=\).* . Cela signifie que nous regroupons le match THISISMYVARIABLE[ ]*= . ([ ]* pour couvrir s'il y a des espaces après la clé)
  • Dans la section de remplacement \1 est une référence arrière. Nous faisons référence au premier groupe dans l'expression régulière que nous avons utilisée pour la correspondance.

Vous pouvez dire :

sed '/^VAR5=/s/=.*/=VALUE10/' filename

A faire dans la modification du fichier sur place , utilisez le -i choix :

sed -i '/^VAR5=/s/=.*/=VALUE10/' filename

Linux
  1. Comment remplacer une chaîne dans un ou plusieurs fichiers ?

  2. Comment utiliser Sed pour remplacer une chaîne multiligne ?

  3. Comment utiliser Sed ou Ex pour remplacer un bloc (code multiligne) par un nouveau bloc de texte (code) ?

  4. Comment utiliser le type de fichier dans Vim ?

  5. Comment remplacer récursivement les caractères par sed ?

COMMENT UTILISER L'EDITEUR SED

Top 20 des commandes sed à utiliser

Comment utiliser la commande lsof sous Linux

Comment utiliser gzip sous Linux ?

Comment utiliser la commande shred Linux

Comment utiliser Sed pour rechercher et remplacer une chaîne dans un fichier