PROCURAR:     
  Sexta, 27/11/2009
» Introdução
» Programação
» Administração
» Hardware
» Aplicativos
» Jogos
» Segurança
» Editorial
» Entrevistas
» Fórum
» Links
» Notícias
» Pegue o Linux
» Documentação
» Programas
» Dúvidas
» Oportunidades
» Sobre
» Contato
» Publicidade
 
Powered By:
DEBIAN
GNU/LINUX
 
English Version
 
 
Curso de Shell - Aula VI
Por: Alex Borro

Nesta aula continuaremos nosso tutorial, desta vez falando sobre o Sed. Vale lembrar que este tutorial dará uma breve introdução ao Sed, ajudando os iniciantes a entender como ele funciona. Portanto muitos comandos mais complexos serão omitidos, já que seria necessário um livro inteiro para ensinar tudo sobre o Sed. Mas não se preocupem, ensinaremos o suficiente sobre ele para utilização em shell script.

Resumo de RegExp

Vamos a um resumo sobre as expressões regulares, explicadas na aula anterior e agora aplicadas ao Sed:
^                           casa com o começo de linha
$                           casa com o fim de linha
.                            casa com qualquer caracter simples
(apenas um)
(caracter)*          casa com qualquer ocorrência, em qualquer
quantidade, de (caracter)
(caracter)?           casa com zero ou uma ocorrência de
(caracter)
[abcdef]                Casa com qualquer caracter dentro dos [ ]
(neste caso, a b c d e ou f), faixas de caracteres como [a-z]
são
permitidas. 
 [^abcdef]             Casa com qualquer caracter NÃO
incluído em [] (neste caso, qualquer caracter que             
   não seja a b c d e ou f)
(caracter)\{m,n\}      casa com m-n repetições de
(caracter)
(caracter)\{m,\}        casa com m ou mais repetições de
(caracter)
(caracter)\{,n\}         casa com n ou menos (também zero)
repetições de (caracter)
(caracter)\{n\}          casa com exatamente n repetições
de (caracter)
\(expressão\)             operador de grupo.
\n                               Backreference - casa com o
n-ésimo grupo
expressão1\|expressão2        Casa com expressão1 ou
expressão2. Funciona com o GNU sed, mas essa              
característica pode não funcionar com outros Seds. 

Caracteres Especiais

Os caracteres especiais no Sed são os mesmo do Grep, com uma diferença: a barra normal / é um caracter especial no sed. A razão disso ficará clara mais para frente quando estudarmos os comandos do sed.

Como funciona: Uma breve introdução

O Sed funciona assim: ele lê da entrada padrão, uma linha de cada vez. Para cada linha, ele executa uma série de comandos de edição e então a linha é escrita na saída padrão. Um exemplo que mostra como ele funciona: Nós usamos o comando "s", que significa "substitute" (substituir) ou "search and replace" (procurar e trocar). O formato é:

s/expressão-regular/texto-substituto/{flags}

Nós não vamos discutir todas as flags ainda. A única que usamos abaixo é a "g", que significa "substitua todas as ocorrências":

     >cat file
     Eu tenho três cachorros e dois gatos
     >sed -e 's/cachorros/gatos/g' -e 's/gatos/elefantes/g' file
     Eu tenho três elefantes e dois elefantes

OK, então o que aconteceu? Primeiro o sed leu a linha do arquivo "file" e executou:

s/cachorros/gatos/g

que produziu o seguinte texto:

    Eu tenho três gatos e dois gatos

e então o segundo comando foi executado na linha já
editada e resultou:

    Eu tenho três elefantes e dois elefantes

Nós atualmente damos um nome para o texto (geralmente uma linha) que o sed leu e está processando (editando): ele chama-se "pattern space" (uma boa tradução seria "área de edição").

O sed lê da entrada padrão e joga na sua área de edição, executando nela uma seqüência de comandos de edição e então ele escreve o resultado na saída padrão.

Comandos de Substituição e Deleção

Primeiro, as maneiras mais usuais do sed é a seguinte:

     >sed -e 'comando1' -e 'comando2' -e 'comando3' arquivo
     >{comando shell} | sed -e 'comando1' -e 'comando2' 
     >sed -f sedscript.sed arquivo
     >{comando shell} | sed -f sedscript.sed

Então, o sed pode ler do arquivo ou da entrada padrão, e os comandos podem ser especificados em um arquivo de script ou na linha de comando. Esse arquivo, chamado sedscript.sed é um arquivo que contém todos os comandos do sed, ao invés de serem especificados na linha de comando. Esses sed's scripts são úteis quando precisamos de um processamento de texto mais complexo e refinado.

Note o seguinte: se os comandos são lidos de um arquivo (sed script), espaços em branco podem ser fatais. Eles podem fazer o script falhar sem explicação aparente. Eu recomendo editar os arquivos de comandos do sed com um editor como o VIM que pode mostrar o final da linha e você pode ver se existem espaços em branco entre os comandos e o fim da linha.


Próximo»

Resumo de RegExp
Caracteres Especiais
Como funciona: Uma breve introdução
Comandos de Substituição e Deleção
Comando de Substituição
O comando de Deleção
Mais alguns comandos
O fim...


Enviar para um amigo

Imprimir

Índice de artigos

ENQUETE
Quais são as suas expectativas quanto ao OpenSUSE 11.2?

Que ele venha mais rápido
Seja mais leve
Mais bonito
Outros


NEWSLETTER
Inscreva-se e receba as últimas notícias, programas, artigos, novidades e tudo do mundo Linux que aconteceu na semana.
 
Digite seu email:

Publicidade / Sobre OLinux / Entre em Contato / Privacidade
Copyright (c) 1999-2009, OLinux - O Portal de Linux do Brasil.
Desenvolvido por: Linux Solutions
Todos os Direitos Reservados.