Comando "sed" com parâmetro que aceita barra " / "
Dica publicada em Shell Script / Introdução
Comando "sed" com parâmetro que aceita barra " / "
Essa dica é uma sugestão que eu encontrei e testei para solucionar o problema de inserir linhas em um documento usando o comando sed. Vou dar um exemplo de um comando que iria falhar:
sed -i -e "s/ usr/home/BAK / usr/home/backup /g" teste
Não tem como funcionar. Por isso, optei por outra solução. Vamos começar.
Crie um arquivo com o nome de test e depois, em um terminal, teste esse comando:
sed -i '4i session.save_path = /home/userftp/tmp' test
Ao conferir, nada aconteceu, pois para o comando funcionar as linhas devem existir. Aqui o 4i diz para o sed adicionar o texto na linha 4, mas como não tem linha nenhuma, ele não faz nada.
Então, vamos fazer assim:
echo -e " um \n dois \n tres \n quatro \n cinco" >> test
$ cat test
um
dois
tres
quatro
cinco
Agora vamos testar:
sed -i '4i session.save_path = /home/userftp/tmp' test
$ cat test
um
dois
tres
session.save_path = /home/userftp/tmp
quatro
cinco
Como pode ser visto, o texto foi inserido na linha 4 empurrando todo o resto do conteúdo para baixo. Assim, você tem a possibilidade de inserir barras nos textos usando o sed.
Fica a dica.
sed -i -e "s/ usr/home/BAK / usr/home/backup /g" teste
Não tem como funcionar. Por isso, optei por outra solução. Vamos começar.
Crie um arquivo com o nome de test e depois, em um terminal, teste esse comando:
sed -i '4i session.save_path = /home/userftp/tmp' test
Ao conferir, nada aconteceu, pois para o comando funcionar as linhas devem existir. Aqui o 4i diz para o sed adicionar o texto na linha 4, mas como não tem linha nenhuma, ele não faz nada.
Então, vamos fazer assim:
echo -e " um \n dois \n tres \n quatro \n cinco" >> test
$ cat test
um
dois
tres
quatro
cinco
Agora vamos testar:
sed -i '4i session.save_path = /home/userftp/tmp' test
$ cat test
um
dois
tres
session.save_path = /home/userftp/tmp
quatro
cinco
Como pode ser visto, o texto foi inserido na linha 4 empurrando todo o resto do conteúdo para baixo. Assim, você tem a possibilidade de inserir barras nos textos usando o sed.
Fica a dica.
Se alguém também tiver alternativas pode complementar aqui.
___________________________________
Conhecimento não se Leva para o Túmulo.