Como inserir texto em um arquivo em uma linha específica?

0

o que estou tentando fazer é inserir o comando sudo em um arquivo com echo ou algo semelhante, mas não na primeira linha, mas em outra linha após o texto. ie. Eu tenho este texto

line[4]command=sh -c "service apache2 start"
e eu quero que o sudo seja depois de "command=" como fazer isso com echo ou qualquer outra coisa?

    
por RL.AdmiralX 20.01.2014 / 18:58

2 respostas

2
sed -i 's/command=/&sudo /' file

explicação: examinando o arquivo linha-a-linha, substitua o texto "command=" por "command = sudo". O & na string substituta será o que for encontrado no lado esquerdo.

    
por 20.01.2014 / 19:22
0

Apenas para completar, observe que normalmente há vários editores de texto disponíveis em um sistema Unix ou Linux, além do editor de fluxo sed . Há ex , por exemplo:

ex file << END
%s/^command=/&sudo /
w
END

Ou até ed (esse é o sabor do GNU):

ed file << END
1,$s/^command=/&sudo /
w
END
    
por 21.01.2014 / 15:23