Sed 003: Inserção e Remoção de Linhas

 

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

  1. 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
  2.  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
  3.  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
  4.  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

 

 

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

One thought on “Sed 003: Inserção e Remoção de Linhas

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *