web-dev-qa-db-fra.com

Sed remplace une ligne spécifique dans le fichier

Je construis un script bash pour ma machine virtuelle et j'aimerais savoir comment remplacer une ligne spécifique de ce document:

[base]

## uncomment and set autologin username to enable autologin
# autologin=dgod

## uncomment and set timeout to enable timeout autologin,

## the value should >=5

# timeout=10

## default session or desktop used when no systemwide config

# session=/usr/bin/startlxde

cette ligne:

# autologin=dgod

Je veux changer à ceci

autologin=ubuntu

J'ai essayé avec "tee" et "sed" mais je ne pouvais pas le faire fonctionner. Cela devrait être très facile pour quelqu'un qui travaille avec des scripts bash plus souvent que moi.

4
lewis4u

C'est simple. Utilisez la commande s dans sed pour rechercher et remplacer.

sed 's/# autologin=dgod/autologin=ubuntu/' /path/to/file

Si vous voyez ce que vous voulez, ajoutez -i pour changer le fichier en place.

sed -i 's/# autologin=dgod/autologin=ubuntu/' /path/to/file
11
Zanna