[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Manipulação de arquivos
From: |
Julio Cezar Neves - DATAPREVRJ |
Subject: |
RES: [shell-script] Manipulação de arquivos |
Date: |
Tue, 30 Aug 2005 13:01:18 -0300 |
Leandro,
como vc está dizendo que a cadeia ocorre em posições fixas do xxx.txt,
imagino que este arquivo tenha registros de tamanho constante. Para efeito
de exemplo vamos supor que seu tamannho seja 100. Então podemos fazer:
sed 's/^/.{10}/;s/$/.{76}/' cnpj.txt > /tmp/$$
egrep -f /tmp/$$ xxx.txt > yyy.txt
Desta forma, em /tmp/$$ eu gerei registros da forma:
.{10}12345678901234.{76}
O que seria uma expressão regular para qq coisa 10 vezes seguido da cadeia
12345678901234 que seriam os 14 caracteres que vc deseja pesquizar entre aas
posições 11 e 24, seguidos de 76 qq coisa. Em seguida fiz cmd egrep que com
a opção -f, recebe o arquivo como sendo um arqivo de expressões regulares.
Para fazer isso num one-liner, e par oneliner o shell é campeão, poderíamos
fazer:
egrep -f <(sed 's/^/.{10}/;s/$/.{76}/' cnpj.txt) xxx.txt > yyy.txt
[ ]s,
Julio
:wq
| -----Mensagem original-----
| De: Leandro Valiengo [mailto:address@hidden]
| Enviada em: terça-feira, 30 de agosto de 2005 11:51
| Para: address@hidden
| Assunto: Re: [shell-script] Manipulação de arquivos
|
|
| Fala Thiago,
|
| mas quem me garante que nao terei esse numero repetido na
| linha? Eu querial algo por posicao, tem como fazer?
|
| Tiago Barcellos Peczenyj <address@hidden> escreveu:
| Eis nossos cnpjs =)
|
| > cat cnpj.txt
| 12345678901234
| 01234567890123
| 21234567890123
| 53234567890123
|
| Eis nosso arquivo
|
| >cat xxx.txt
| __________12345678901234____
| __________01234567890123____
| __________88888888880000____
|
| para procurar todos os cnpjs em xxx.txt
|
| >grep -f cnpj.txt xxx.txt | tee -a yyy.txt
| __________12345678901234____
| __________01234567890123____
|
| e os que não se encontram
|
| >grep -v -f cnpj.txt xxx.txt | tee -a nao.txt
| __________88888888880000____
|
|
| basicamente vc procura strings com o grep. como vc tem uma lista eh so
| usar o 'grep -f file'. para vc procurar os que nao estao na lista,
| basta fazer grep -v que 'inverte' a procura.
|
| O que é problema para o bash ?
|
| Em 30/08/05, Leandro Valiengo escreveu:
| >
| > Fala grupo,
| >
| > estou precisando da ajuda de vc´s. Eu tenho um arquvio cnpj.txt com
| > aproximadamente 5.000 cnpj´s e outro arquivo xxx.txt com
| aproximadamente
| > 1.000.000 de registros sendo que o cnpj neste arquivo
| comeca na posicao 11
| > até a 24.
| >
| > Tenho q gerar um arquivo yyy.txt a partir do arquivo
| xxx.txt somente com os
| > registros que se encontram no arquivo cnpj.txt e um outro
| arquivo nao.txt
| > onde serão os cnpj´s q nao se encontram no arquivo cpnj.txt
| >
| > Valeu.
| >
| > Valiengo
| >
| >
| >
| > ---------------------------------
| > Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o
| discador agora!
| >
| > [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: address@hidden
| >
| ---------------------------------------------------------------------
| > Esta lista é moderada de acordo com o previsto em
| > http://www.listas-discussao.cjb.net
| >
| ---------------------------------------------------------------------
| >
| >
| >
| >
| > Yahoo! Grupos, um serviço oferecido por:
| >
| > PUBLICIDADE
| >
| > ________________________________
| > Links do Yahoo! Grupos
| >
| >
| > Para visitar o site do seu grupo na web, acesse:
| > http://br.groups.yahoo.com/group/shell-script/
| >
| > Para sair deste grupo, envie um e-mail para:
| > address@hidden
| >
| > O uso que você faz do Yahoo! Grupos está sujeito aos Termos
| do Serviço do
| > Yahoo!.
|
|
| ---------------------------------------------------------------------
| 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: address@hidden
| ---------------------------------------------------------------------
| Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos
__________________________________________________
Converse com seus amigos em tempo real com o Yahoo! Messenger
http://br.download.yahoo.com/messenger/
[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: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- RES: [shell-script] Manipulação de arquivos,
Julio Cezar Neves - DATAPREVRJ <=