Ordene os dois arquivos com o sort e depois use o join -t " " arquivo1 arquivo2 .
Ronie Marcio From: micro...@terra.com.br Sent: Monday, January 18, 2010 4:44 PM To: shell-script@yahoogrupos.com.br Subject: Re: [shell-script]intersecção entre dois arquivos Com o uso de: $ for i in $(cat a.txt); do grep "^$i" b.txt; done Poderia haver herro pois procurando linhas começadas por "20" traria também linhas começadas por "20.*" Eu sempre ponho o caracter subsequente (espaço ou tab) pra evitar destruição sumária de ambientes produtivos por conta de scripts. =P $ for i in $(cat a.txt); do grep "^$i " b.txt; done Eric PS um erro sem H num é um herro realmente herrado. On Seg 18/01/10 14:46 , Bruno Gunter gun...@infolink.com.br sent:" Ricardo, assim não funcionaria, pois você está "grepando" tudo menos a ocorrência desejada (o -v do grep). Do man do próprio grep: -v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX.) []'s Gunter Em Seg, 2010-01-18 às 14:32 -0200, ®...@®ÐØ escreveu: > se bem que pode ser assim também: > $ for i in $(cat a); do grep -v "$i" b; done > > > 2010/1/18 Pedro Pardini > > > > > > > Fala, Julio. > > Obrigado pela dica e pelo puxão de orelha. Minhas humildes desculpas!! > > Eu realmente esqueci de postar minhas tentativas. > > > > Mas, eu estava mesmo esbarrando no uso do circunflexo, como disse o Moacir. > > Eu nem tinha lembrado do xargs também, como vc sugeriu! > > > > Valeu, pessoal! Mistério resolvido! > > > > P.S. - Da próxima, vou me lembrar de postar minhas tentativas. > > > > Abraços a todos!! > > > > Pedro Pardini > > > > > > On segunda-feira18/01/10 18/01/10 - 14:11, Julio C. Neves wrote: > > > Fala Pedro, > > > isso é muito simples mas assim mesmo vc não mostrou as suas tentativas. > > Não > > > é do meu hábito responder a pessoas que não mostraram que tentaram e não > > > conseguiram, no entanto como já responderam e um deles foi meu aluno há > > > pouco tempo e não deve estar habituado com esses procedimentos, vou te > > dar > > > uma proposta de solução, mas aproveitando a oportunidade para solicitar > > aos > > > colegas de lista que só respondam a perguntas de pessoas que mostrma que > > > tentaram e não conseguiram. > > > > > > Uma coisa é ajudar, outra é resolver o problema do cara. No primeiro > > caso, > > > vc ensina a pescar, na outra dá o peixe. > > > > > > Pedro, se vc tivesse visto o cmd grep com carinho (vc disse que tentou > > com > > > grep) veria que a opção -f define um arquivo de expressões regulares qu > > vc > > > irá pesquisar em outro arquivo. Então bastaria fazer: > > > > > > grep -f arq1 arq2 > > > > > > Difícil, né? > > > > > > No entanto vc está procurando somente no início da linha. Então por > > > segurança vc poderia fazer: > > > > > > grep -f > > > > > Abraços, > > > Julio > > > Cursos de Shell e Zenity em 2 fins de semana? > > > - Em SP ligue (11)2125-4747; > > > - Em DF ligue (61) 3223-3000; > > > - Turmas fechadas em outras cidades ligue (21) 8112-9988. > > > > > > > > > > > > 2010/1/18 Pedro Pardini > > > > > > > > > > > >> > > >> Olá, amigos. > > >> Um Feliz 2010 a todos... Meio atrasado!!! - Voltei hoje das férias :) > > >> > > >> Alguém poderia me ajudar com este script? > > >> > > >> Tenho dois arquivos txt: > > >> arq1: > > >> 30 > > >> 72 > > >> 183 > > >> 427 > > >> 1298 > > >> 1315 > > >> 2008 > > >> 2794 > > >> 5825 > > >> .... > > >> > > >> arq2: > > >> 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 > > >> .... > > >> > > >> Preciso obter todas as linhas do arquivo arq2 cuja primeira coluna > > >> encontre elemento coincidente no arq1. > > >> Como se faz isto??? Já tentei grep, sed, mas acho que não estou sabendo > > >> construir a lógica do comando. > > >> > > >> Abraços > > >> > > >> > > >> > > >> > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > ------------------------------------ > > > > > > ---------------------------------------------------------- > > > Esta lista não admite a abordagem de outras liguagens de programação, > > como perl, C etc. Quem insistir em não seguir esta regra será moderado sem > > prévio aviso. > > > ---------------------------------------------------------- > > > Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br > > > ---------------------------------------------------------- > > > Esta lista é moderada de acordo com o previsto em > > http://www.listas-discussao.cjb.net [1] > > > ---------------------------------------------------------- > > > Servidor Newsgroup da lista: news.gmane.org > > > Grupo: gmane.org.user-groups.programming.shell.brazil > > > > > > Links do Yahoo! Grupos > > > > > > > > > > > > > > > > > > > > > > -- > ---------------------------------------------------------- > ATENÇÃO: EVITE QUE SPAMMERS CAPTURE CONTATOS DE SUA LISTA, > SEMPRE QUE POSSÍVEL REMOVA OS EMAILS DO REMETENTE E ENVIE EM (COO- CÓpia > Oculta) PARA SEUS CONTATOS. > ;) > > A Graça do nosso Senhor Jesus Cristo seja contigo. (1ªTs 5.28) > The grace of our Lord Jesus Christ be with you. (1ªTs 5.28) > Jesus te ama, aceite-O! Jesus loves you, accept you Him! > > ®...@®ÐØ > > > [As partes desta mensagem que não continham texto foram removidas] > > > > ------------------------------------ > > ---------------------------------------------------------- > Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. > ---------------------------------------------------------- > Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br > ---------------------------------------------------------- > Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net [2] > ---------------------------------------------------------- > Servidor Newsgroup da lista: news.gmane.org > Grupo: gmane.org.user-groups.programming.shell.brazil > > Links do Yahoo! Grupos > > [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]