Adiciona / edita texto de linha no arquivo sem editor aberto (comando linux) [duplicado]

5

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

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

echo "hello_world = 1" >> test.txt

Mas como posso alterar 1 para 0 ou outra coisa?

    
por Marco98T 02.07.2014 / 13:24

2 respostas

21

Usando sed :

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

Em geral:

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

Veja man sed para mais informações.

    
por Radu Rădeanu 02.07.2014 / 13:28
4

Através do awk,

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

Exemplo:

$ echo 'hello_world = 1' | awk '{sub(/1/,"0")}1'
hello_world = 0
    
por Avinash Raj 02.07.2014 / 13:54