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

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

RES: [shell-script] sed ou grep?


From: Julio Cezar Neves - DISB.O
Subject: RES: [shell-script] sed ou grep?
Date: Thu, 20 Jul 2000 16:23:07 -0300

> ----- Mensagem original -----
> De:           Renato Alvim [SMTP:address@hidden]
> Enviada em:           quinta-feira, 20 de julho de 2000 15:34
> Para:         address@hidden
> Assunto:              Re: [shell-script] sed ou grep?
> 
> Muitissimo obrigado!
> Ser-me-a de grande valia sua ajuda.
> Mas, incomodando de novo, nunca usei o awk.
> Como ele funciona?
> 
        Agora não ser-te-ei (se usar mais um destes, sentir-me-ei o rei da
mesóclise ;)) de tão grande valia, já que o awk por ser uma linguagem
interpretada, bastante parecida com o C, necessita de muito tempo e espaço
para explicá-la. Caberia até abrir uma outra lista só para o tema
"programação em awk".

        Mas, já te adiantando, seria algo mais ou menos assim: o awk está
para o C, assim como o JavaScript está para o Java.

> Posso usar o man awk?(Vou tentar).
> 
        Pode sim Renato, mas se a tua leitura de Inglês é boa, aconselho-te
a participar das listas de discussões sobre o awk que abundam (ops!) na
rede, ou esperar na 1ª quinzena de agosto um livro da Editora Bras... :)

> []'s
> Renato Alvim
> 
        Abraços tb,
        Julio
> ----- Original Message -----
> From: Julio Cezar Neves - DISB.O <address@hidden>
> To: <address@hidden>
> Sent: Thursday, July 20, 2000 1:27 PM
> Subject: RES: [shell-script] sed ou grep?
> 
> 
> : 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
> :
> : O awk foi escrito para substituir o grep e o sed, portanto, normalmente,
> seu
> : uso nestes casos é + indicado.
> :
> : []s,
> : Julio
> :
> 

From (no email address) Thu Jul 20 18:36:46 2000
Return-Path: <address@hidden>
Received: (qmail 5545 invoked from network); 21 Jul 2000 01:36:46 -0000
Received: from unknown (10.1.10.142) by m1.onelist.org with QMQP; 21 Jul 2000 
01:36:46 -0000
Received: from unknown (HELO burns.conectiva) (200.250.58.146) by mta1 with 
SMTP; 21 Jul 2000 01:36:45 -0000
Received: (qmail 7553 invoked from network); 21 Jul 2000 01:38:45 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with 
SMTP; 21 Jul 2000 01:38:45 -0000
Date: Thu, 20 Jul 2000 22:38:34 -0300 (BRT)
X-Sender: aurelio@verde.distro.conectiva
To: address@hidden
Subject: Re: RES: [shell-script] sed ou grep?
In-Reply-To: <318B242CE32BD41192850050DA6BA9985DFB86@WTRJO077>
Message-ID: <Pine.LNX.4.21.0007202225170.952-100000@verde.distro.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
From: # aurelio marinho jargas <address@hidden>

@ 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)

para evitar isso, o mais seguro é

cp arquivo arquivo.tmp
sed 'comando' arquivo.tmp > arquivo
rm arquivo.tmp


> 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...

--
s/:(/>(/×^a]×http://www.verde666.org×^[:wq



reply via email to

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