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

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

Re: [shell-script] Localizar texto em arquivo


From: Aurelio Marinho Jargas
Subject: Re: [shell-script] Localizar texto em arquivo
Date: Thu, 25 Nov 2004 13:54:35 -0300 (ART)

oi fábio,

 --- Fábio Batista <address@hidden> escreveu: 
> [fabio@elefante testes]$ cat passwd.txt
> adriano:x:1417:100:Adriano Silva - USINET:/home/adriano:/bin/bash
> marcos:x:1418:100:Marcos Antônio - USINET:/home/marcos:/bin/bash
> 
> [fabio@elefante testes]$ cat passwd_clientes.txt
> Adriano Silva
> Marcos Antônio
> José Geraldo Magela
> 
> [fabio@elefante testes]$ cat passwd_clientes.txt | sed -r
> 's|(.*)|s/^([^:]+):([^:]*:){3}\1 - USINET:.*$/\1 - \\address@hidden/|'
> | sed -rf- passwd.txt
> Adriano Silva - address@hidden
> Marcos Antônio - address@hidden

nooooooooooooossa, que violência! :)

mandou bem pacas, fazendo um sed que gera um script para o
segundo sed interpretar. para cada nome da lista, ele
monta o s/// responsável por transformá-lo no formato novo.
não tentem isso sem o acompanhamento de um adulto pessoal,
é magia negra ;)

pensei numa tática diferente:

  $ cat passwd.txt | 
    sed -r 's/^([^:]+):x[0-9:]+:([A-Z][^-]*)-.*/\2- \address@hidden/' |
    grep -f passwd_clientes.txt 
  Adriano Silva - address@hidden
  Marcos Antônio - address@hidden
  $

aqui ele aplica a transformação do formato para todas as
linhas do passwd, e depois o grep -f se encarrega de
deixar somente as linhas com os nomes desejados.

de qualquer forma ficou cabuloso. o mais fácil de entender
e manter é fazer um loop mesmo, usando o set - para
separar os campos do passwd em variáveis e manipulá-las.

um awk com um   printf "%s - %address@hidden\n", $5, $1
ou coisa do tipo também pode ajudar.

falou!

=====
-- 
Aurelio Marinho Jargas, Curitiba, Conectiva
Funcoes ZZ v4.1111 http://aurelio.net/zz
txt2tags v2.1 http://txt2tags.sf.net/pt


        
        
                
_______________________________________________________ 
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora! 
http://br.acesso.yahoo.com/


reply via email to

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