Adicionar/editar texto de linha em arquivo sem editor aberto (comando linux)

Adicionar/editar texto de linha em arquivo sem editor aberto (comando linux)

Sei como adicionar novo texto a um arquivo, mas como posso editá-lo?

Exemplo: adicionando hello_world = 1test.txt usando o seguinte comando:

echo "hello_world = 1" >> test.txt

Mas como posso mudar 1para 0ou outra coisa?

Responder1

Usando sed:

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

Em geral:

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

Veja man sedpara mais informações.

Responder2

Através do awk,

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

Exemplo:

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

informação relacionada