A Estrutura do sed a ser invocada
Sed é invocado da seguinte forma:
Essa é a forma full/completa.
Exemplos
[elder@serverTeste textos]$ sed -n 'p' ./teste.txt Maria entrou na casa A casa era assombrada Tinha o número 13 fixado na dachada Aterrorizante! Muito Aterrorizante
onde,
- sed = editor de fluxo de texto
- -n = opção que é usada juntamente com ‘p’ para exibição de textos
- ‘p’ = script para exibir o texto.
- ./teste.txt = arquivo de texto que serve como entrada
[elder@serverTeste textos]$ sed -n '/casa/p' ./teste.txt Maria entrou na casa A casa era assombrada
Onde,
- sed = editor de fluxo de texto
- -n =opção que é usada juntamente com ‘p’ para exibição de textos. Se não utilizada, Sed irá imprimir o resultado duas vezes.
- ‘/casa/p’ = script que exibe/filtra somente as linhas contendo a palavra casa
- ./teste.txt = arquivo de texto que serve como entrada
Lista de Opções
Abaixo segue lista de algumas opções
- –version = Exibe na tela a versão do sed e outras informações
- –help = imprime na tela um texto de ajuda bem resumido, porém muito útil.
- -n = opção usada juntamente com o comando p, conforme exemplo acima
- -i = por padrão, sed não altera o arquivo. Essa opção faz com que o arquivo seja permanentemente alterado – Usando com algumas letra ou palavra à frente faz com que seja criado uma cópia de backup do arquivo original
Lista de comandos para Script em Sed
O script pode conter diversos comandos, como o ‘p’ usado anteriormente juntamente com a opção -n. Segue lista de alguns comandos:
- a\ ou a = adiciona um texto depois de uma linha qualquer do texto.
- i ou i\ = adiciona um texto antes de uma linha qualquer
- d = Deleta uma linha qualquer do texto
- e = executa um comando
- s = tem como função substituir texto. Falam que é o comando mais famoso e utilizado.
Input ou Arquivo de Entrada
Input significa entrada. O editor Sed pode receber um texto enquanto você digita no teclado, ou ainda um texto vindo de um outro comando, como o cat ou echo. Porém, o mais comum é receber texto de um arquivo.
Mais Exemplos
- Substituindo casa por casinha utilizando sed ‘s/casa/casinha/p’. Perceba que a entrada é o que digito no terminal. Para finalizar teclo “Control + c”
- Veja no exemplo anterior que o resultado aparece duplicado. Para corrigir precisamos acrescentar a opção -n.
- Usaremos o arquivo teste.txt como entrada(input file). Exibindo seu conteúdo.
Obs.: é bom relembrar que o “./” se refere ao diretório/pasta que estou acessado no momento, no caso /home/elder/textos
Acima poderia ser usado também: sed ‘ ‘ ./teste.txt
- Usaremos o arquivo teste.txt como entrada(input file). Exibindo seu conteúdo.
- Substituindo “dachada” por “fachada” e usando a opção -i para alteramos o arquivo.
Se não houve a utilização da opção -i o arquivo não sofrerá alteração. Ocorrerá apenas uma simulação.
- Uma das coisas interessantes do sed é a função da opção -i também realizar uma cópia de segurança do arquivo. Para isso basta acrescentar qualquer letra(s) após o -i, exemplo: “-i.bak”. Iremos usar “2i\” para acrescentar um texto na linha 2 e ao mesmo tempo criar o backup.
Abaixo utilizo o comando ls para listar os arquivos; realço de laranja o arquivo de backup criado.[elder@serverTeste textos]$ ls -1 listaNomes.txt teste.txt teste.txt.bak
Bom, por hoje é só!
Siga-nos em nossas redes:
Link Facebook: https://www.facebook.com/gnulinuxbr
Link WhatsApp: https://chat.whatsapp.com/JbxmZmLvIIGCDLjd1VFMUO
Link Telegram: https://t.me/gnulinux_brasil
G+: https://plus.google.com/communities/112884163231229355409
YouTube: https://www.youtube.com/channel/UCwyFWDqE0v7SwpZenjmzxYQ