«

»

set 05

Imprimir Post

Utilizando o comando SED

0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×

sed

Neste post quero demonstrar algumas das principais funções do comando sed. Esta ferramenta tem como principal função a manipulação, modificação e substituição de textos.

 

1º – Substituição de texto. Esta função é de grande utilidade quando queremos modificar  palavras/strings inseridas em um texto. Exemplo :

# echo 'Não esqueça de conferir os outros posts da comunidade' | sed 's/comunidade/aw2net/'
" Não esqueça de conferir os outros posts da aw2net "

” A sintaxe ‘s’ indica a substituição da palavra “comunidade” por “aw2net” (/comunidade/aw2net/’),porem, esta sintaxe substitui apenas a primeira palavra da linha,caso queira aplicar a todas as linhas,acrescenta-se -g no final do comando.

Exemplo :

# echo 'Duvidas sobre o awk ? entre no post de awk e tire suas duvidas sobre awk' | sed 's/awk/sed/g'
” Duvidas sobre o sed ? entre no post de sed e tire suas duvidas sobre sed ”

Substituímos todas as palavras que continham awk por sed. Até então,efetuamos substituições diretas na linha de comando,porem,se quisermos efetuar alterações em um arquivo de texto,usamos a seguinte sintaxe :

                  arquivo
# sed  's/awk/sed/' sedteste

Neste exemplo,as alterações serão impressas na tela,ou podem até ser colocadas em um novo arquivo,porem,se quisermos modificar diretamente o arquivo de texto mencionado,usamos o padrão “-i” na frente do comando sed. ( sed -i s/awk/sed/ sedteste )

 

2º Delimitador. Vamos super que você queria substituir os campos separados por barra da  linha  “Entre no diretório /usr/share/diretorio” por /etc/passwd A sintaxe para substituição ficaria assim :

# echo 'Este diretorio /usr/share/diretorio contem os arquivos que serão editados no processo' | sed 's/\/usr\/share\/diretorio/\/etc\/passwd/'

 

A separação dos diretórios é seguida por “\/” e a separação entre o diretório e o diretório a ser substituído vem por “/\/”.

3º Removendo linhas :

 

Para deletar a(s) linha(s) de um arquivo,usamos a seguinte sintaxe :

# sed -i '1,5 d' sedteste

Neste exemplo,o comando ira apagar a linha 1 até a linha 5.

 

4º Adicionando linhas com os padrões “a” e “i” :

 # echo -e 'vamos fazer\num teste\nadicionando linhas\ncom o post da aw2net' | sed -r '/post+/ a Oba,consegui'
 
vamos fazer
um teste
adicionando linhas
com o post da aw2net
Oba,consegui

 

# echo -e 'vamos fazer\num teste\nadicionando linhas\ncom o post da aw2net' | sed -r '/post+/ i Oba,consegui'

vamos fazer
um teste
adicionando linhas
Oba,consegui
com o post da aw2net

O padrão “a” adiciona a linha depois do padrão encontrado ( neste caso “post” ) e o “i” o inverso.

5º  Metacharacters

Iremos apresentar alguns metacharacters com o comando sed :

1. ‘ [ ] ‘ – Com este metacharacter é possível aplicar restrições de carácters que serão modificados, exemplo :

# sed -i 's/[Dd]avid/Davi/g' /root/meta
Este comando ira trocar todas as linhas que contenham a palavra David ou david do arquivo meta por Davi,aplicando tanto a letras maiúsculas quanto minusculas. Obs : se quiséssemos uma restrição de maiúsculas, bastava especificar entre os colchetes somente a letra maiúscula.

2. '^' - Utilizado para substituir todas todas as linhas que começarem com a string especificada. Exemplo :
 # sed -i 's/^tcp/udp/g' /root/meta

Neste exemplo o comando ‘ ^ ‘ seguido de ” tcp ” indica que todas as linhas que começarem com tcp irão ser substituídas por udp.

3.  ‘ & ‘ – Salva a string com o valor ” & ” permitindo adicionar parâmetros antes e depois.

# sed -i 's/udp/protocolo&teste/g' /root/meta

Saída :

protocoloudpteste
protocoloudpteste
protocoloudpteste
protocoloudpteste
protocoloudpteste

 

Bom pessoal, espero ajudar de alguma forma com este post, qualquer duvida deixe um comentário que responderei assim que possível, até a próxima !!!

 

 

 

 

 

Jardel Fernandes Fernandes da Costa (15 Posts)


0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×

Sobre o autor

Jardel Fernandes Fernandes da Costa

Link permanente para este artigo: http://comunidade.aw2net.com.br/utilizando-o-comando-sed/

Deixe uma resposta

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

0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×