Agregar/editar texto de línea en un archivo sin abrir el editor (comando de Linux)

Agregar/editar texto de línea en un archivo sin abrir el editor (comando de Linux)

Sé cómo agregar texto nuevo a un archivo, pero ¿cómo puedo editarlo?

Ejemplo: agregar hello_world = 1a test.txt usando el siguiente comando:

echo "hello_world = 1" >> test.txt

¿Pero cómo puedo cambiar 1a 0otra cosa?

Respuesta1

Usando sed:

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

En general:

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

Consulte man sedpara obtener más información.

Respuesta2

A través de awk,

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

Ejemplo:

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

información relacionada