Pedro,

     Só a expressão do grep que está incorreta. Veja a seguir que a dica de
Bruno funciona bem:

$ cat a
30
72
183
427
1298
1315
2008
2794
5825

$ cat b
22 Joao da Silva 12/2008 22/01/77
30 Zezinho das Couves 07/2004 15/09/68
427 Maria do Zé 03/2002 22/03/81
428 Jubencio da Zinha 10/2007 28/06/64

 $ for i in $(cat a); do grep $i b; done
30 Zezinho das Couves 07/2004 15/09/68
427 Maria do Zé 03/2002 22/03/81
22 Joao da Silva 12/2008 22/01/77

     Mas pode ficar mais precisa com a adição de um circunflexo na expressão
do grep:

$ for i in $(cat a); do grep "^$i" b; done
30 Zezinho das Couves 07/2004 15/09/68
427 Maria do Zé 03/2002 22/03/81

     No primeiro exemplo, a terceira linha apareceu por causa da string 2008
no arquivo "a" (que casou com 12/2008 na linha de Joao da Silva). No segundo
você só casa os números do arquivo "a" com os números que iniciam as linhas
do arquivo "b".

[]'s,
Moacir Filho

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Moacir da Cruz Souza Filho

-Analista de Sistemas: Suporte Unix Avançado
Serviço Federal de Processamento de Dados

-Mestrando em Ciências da Computação
Universidade de Brasília

-Bacharel em Engenharia da Computação
Escola Politécnica de Pernambuco
Universidade de Pernambuco

-Técnico em Eletrônica
Escola Técnica Federal de Pernambuco

-Linux user #449600
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


[As partes desta mensagem que não continham texto foram removidas]

Responder a