web-dev-qa-db-fra.com

Ajouter / modifier du texte de ligne dans un fichier sans éditeur ouvert (commande linux)

Je sais comment ajouter du nouveau texte à un fichier, mais comment puis-je le modifier?

Exemple: ajout de hello_world = 1 à test.txt à l'aide de la commande suivante:

echo "hello_world = 1" >> test.txt

Mais comment puis-je changer 1 en 0 ou autre chose?

6
Marco98T

Utilisation de sed:

sed -i 's/1/0/g' test.txt

En général:

sed -i 's/oldstring/newstring/g' filename

Voir man sed pour plus d'informations.

25
Radu Rădeanu

À travers awk,

awk '{sub(/1/,"0")}1' infile > outfile

Exemple:

$ echo 'hello_world = 1' | awk '{sub(/1/,"0")}1'
hello_world = 0
4
Avinash Raj