De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 21 de setembro de 2012
Suponhamos que você tenha centenas de programas, por exemplo, na linguagem C, e queira inserir após um determinado local nestes programas, uma linha adicional.
Tomando como exemplo um arquivo chamado programa.c, com o seguinte conteúdo:
#include "quad.h" #define B ((int)1 << HALF_BITS) /* digit base */ ... (linhas omitidas)
Para incluir uma linha contendo o texto #include "header.h"
após a linha
#include "header.h"
use o seguinte comando:
sed -i 's/#include "quad.h/#include "quad.h\n#include "header.h"/' programa.c
Após a execução, temos:
#include "quad.h" #include "header.h" #define B ((int)1 << HALF_BITS) /* digit base */
A quebra de linha é indicada por \n
.
É recomendável fazer um backup antes de fazer mudanças radicais em muitos arquivos. O próprio comando sed oferece esta opção. Por exemplo, para criar um backup dos arquivos modificados usando como sufixo a data em que foi feita a modificação, podemos usar:
sed -i_`date +%Y%m%d` 's/#include "quad.h/#include "quad.h\n#include "header.h"/' programa.c
Será criado um arquivo de backup, para o exemplo acima, chamado
programa.c_20120921
.
O valor do sufixo é determinado pelo resultado do comando date +%Y%m%d
.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários