Estrutura a ser invocada
sed + opção + script com comandos + input file(arquivo de entrada)
Opção a Ser Usada
- -i = Como visto anteriormente, para alterarmos um arquivo devemos pôr a opção “-i”. Se não pormos o “-i” não haverá alteração no arquivo.
Esse item é uma opção e deve ser usada antes do script.
Comandos a Serem Usados
- a ou a\ = Insere um texto após uma linha(exemplo: ‘/a\Texto/’ a palavra texto será inserida). Pode-se usar a letra “a” sem barra ou com barra “a\”. Particularmente, prefiro usar com barra, já que facilita diferenciar o “a” do texto a ser inserido.
- i ou i\ = Insere texto antes de uma linha;
- d = deleta texto.
Esses itens são comandos e devem ser usados dentro do script.
Input File(Arquivo de Texto) a Ser Usado
Usamos o arquivo teste.txt que, no meu caso, está em /home/elder/textos. Esse arquivo contém o seguinte conteúdo:
teste.txt
Maria entrou na casa Esta é uma linha acrescentada ao arquivo Este é um texto acrescentado à linha dois A casa era assombrada Tinha o número 13 fixado na fachada Aterrorizante! Muito Aterrorizante
Praticando
- Inserindo uma frase após a linha 5(ou A casa era assombrada). Observe que antes do a\ coloco o número 5, que é a linha a ser afetada.
[elder@serverTeste textos]$ sed -i '5a\Texto Inserido após a linha 5' ./teste.txt
utilize “cat -n” para exibir o texto numerado e confirmar a inserção do texto após a linha 5, no caso o texto ficou na linha 6 🙂
[elder@serverTeste textos]$ cat -n ./teste.txt 1 Maria entrou na casa 2 Esta é uma linha acrescentada ao arquivo 3 Este é um texto acrescentado à linha dois 4 A casa era assombrada 5 Tinha o número 13 fixado na fachada 6 Texto Inserido após a linha 5 7 Aterrorizante! Muito Aterrorizante
- Inserir um texto antes da linha 1.
[elder@serverTeste textos]$ sed -i '1i\Coloquei esse texto usando SED' ./teste.txt
Exibindo texto alterado
[elder@serverTeste textos]$ cat -n ./teste.txt 1 Coloquei esse texto usando SED 2 Maria entrou na casa 3 Esta é uma linha acrescentada ao arquivo 4 Este é um texto acrescentado à linha dois 5 A casa era assombrada 6 Tinha o número 13 fixado na fachada 7 Texto Inserido após a linha 5 8 Aterrorizante! Muito Aterrorizante
- Excluindo a linha 7. Essa é bem fácil.
elder@serverTeste textos]$ sed -i '7d' ./teste.txt
Comparando com o texto exibido pelo cat -n acima, vemos que abaixo a frase “Texto Inserido após a linha 5” foi eliminada 🙂
[elder@serverTeste textos]$ cat -n ./teste.txt 1 Coloquei esse texto usando SED 2 Maria entrou na casa 3 Esta é uma linha acrescentada ao arquivo 4 Este é um texto acrescentado à linha dois 5 A casa era assombrada 6 Tinha o número 13 fixado na fachada 7 Aterrorizante! Muito Aterrorizante
- E se quisermos excluir um intervalo? por exemplo, remover da linha 3 à 6. é só usar “3,6d”
[elder@serverTeste textos]$ sed -i '3,6d' ./teste.txt
Comparando:
[elder@serverTeste textos]$ cat -n ./teste.txt 1 Coloquei esse texto usando SED 2 Maria entrou na casa 3 Aterrorizante! Muito Aterrorizante
Siga-nos em nossas redes:
Link Facebook: https://www.facebook.com/gnulinuxbr
One Comment to “Sed 003: Inserção e Remoção de Linhas”