shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: RES: [shell-script] sed ou grep?


From: Julio Cezar Neves - DISB.O
Subject: RES: RES: [shell-script] sed ou grep?
Date: Fri, 21 Jul 2000 11:21:08 -0300


> ----- Mensagem original -----
> De:           # aurelio marinho jargas [SMTP:address@hidden]
> Enviada em:           quinta-feira, 20 de julho de 2000 22:39
> Para:         address@hidden
> Assunto:              Re: RES: [shell-script] sed ou grep?
> 
> @ 20/7, Julio Cezar Neves - DISB.O:
> > Vc pode fazer isso por sed, grep (com a opção -v) ou preferencialmente
> por
> > awk. Basta ter uma característica que seja única na linha que vc deseja
> > deletar e montar uma expressão regular. P.ex. digamos q vc queira
> deletar
> > todas as linhas começadas por um comentário (#) do .xinitrc. Usando o
> grep e
> > o sed, como vc sugeriu, ficaria:
> > 
> > sed '/^#/d' .xinitrc > /tmp/xinitrc ; mv /tmp/xinitrc .xinitrc
> > ou
> > grep -v '^#' .xinitrc > /tmp/xinitrc ; mv /tmp/xinitrc .xinitrc
> 
> com este mv você perde todas as propriedades do arquivo original
> (permissões, possíveis links) 
> 
        por tratar-se do .xinitrc no exemplo, não creio q isto vá ocorrer.
De qq forma esta foi uma simplificação da resposta. Creio q pude demonstrar
o uso dos comandos solicitados.

> > O awk foi escrito para substituir o grep e o sed, portanto, normalmente,
> seu
> > uso nestes casos é + indicado.
> 
> você tem certeza?
> awk, sed e grep são coisas totalmente diferentes.
> ambos manipulam textos, mas
> 
> grep: procura padrões num texto
> sed : edita um texto de maneira não interativa
> awk : linguagem de programação, com variáveis e estruturas de
>       fluxo, direcionada à manipulação de texto
        cada um serve praum propósito diferente...


        Certeza? Como se pode ter certeza do que vai na cabeça dos
desenvolvedores do awk? Apenas citei o que li nos meus estudos sobre a
linguagem. Abaixo tradução literal de um manual de awk da Berkley University
(de onde saiu o sabor BSD do UNIX):
        awk é um anacrônimo formado pelos nomes dos três programadores que
escreveram o comando (Alfred V. Aho, Peter J.  Weinberger, e Brian W.
Kernighan ), com a finalidade de englobar as funções da família grep (grep,
fgrep e egrep) e do sed.

        Ou seja, o awk pretende ser a soma das outras duas e não cada uma de
"per si", como talvez o meu texto anterior tenha de deixado entender.

        Suas observações foram muito boas.

        []s, Julio


reply via email to

[Prev in Thread] Current Thread [Next in Thread]