Dica sed

Sou assinante do RSS do grupo de discrussão
http://br.groups.yahoo.com/group/shell-script/rss

Volta e meia aparecem dúvidas sobre o SED "stream editor"
e quase sempre alguém sugere algo como:

  cat arquivo.original > arquivo.original.backup
 cat arquivo.original | sed '/padrao/d' > arquivo.modificado
 mv arquivo.modificado arquivo.original

mas você pode simplificar tudo fazendo:

  sed -i.backup '/padrao/d' arquivo.original

No caso acima o sed irá apagar a palavra "padrão"
mas antes ele já cria o bakcup pra você, tudo em uma
mísera linha.  :)

Modificando a profundidade de cores do xorg.conf

#  sed -i.backup 's/\(DefaultDepth\s\+\)24$/\116/g' /etc/X11/xorg.conf

No caso acima há um bocado de expressões regulares, para este assunto
sugiro o guia do Aúrélio.

Vou tentar traduzir a expressão regular acima:

o sed está fazendo    sed -i.backup  's/isto/aquilo/g'

1 - Referenciamos um grupo que contém DefaultDepth junto com um
   ou mais espaços   \s\+ tudo isto agrupado dentro de
   parênteses "que tem que ser protegidos com contrabarra
   o que gera isto:
 
        
\(DefaultDepth\s\+\)      

   este grupo que está dentro dos parênteses é colado
   lá na substituição \1  isto cola o grupo acima

2 - O valor '24' literal

3 - Referência ao final da linha '$'

4 - Agora entra a substituição

   \1   ............. 
DefaultDepth + espaços
   16   .............  Valor que deverá substituir o 24

Referências:
http://www.zago.eti.br/sed.txt
man sed


Nenhum comentário:

Postar um comentário

Insira seu comentário - O mesmo será submetido à aprovação!

linux-cookbook

Grupos do Google
Participe do grupo linux-cookbook
E-mail:
Visitar este grupo