Que pena que vc aprendeu tudo, gostaria muito de voltar a Floripa para
ensinar tudo de novo. Essa terra é o que mais se assemelha ao paraíso.

Vc não assinou o e-mail, então não tenho a menor ideia de quem seja
mrgraucio...

Acho que vc pode aproveitar o que fiz para excluir de forma rápida as linhas
^1 seguidas de ^2, veja:

grep -vf <(grep -B1 ^2 /Arquivo/de/10000/registros)
/Arquivo/de/10000/registros

Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- SE turma de Shell/Zenity em 13/09 - clemis...@gmail.com
- SP turma de Shell em 14/08 - www.4Linux.com.br
<http://www.4linux.com.br/>
- Turmas fechadas em outras cidades ligue (21)8112-9988.

--- @ WiseStamp
Signature<http://my.wisestamp.com/link?u=63n3xfgzns9kh5v7&site=www.wisestamp.com/email-install>.
Get it 
now<http://my.wisestamp.com/link?u=63n3xfgzns9kh5v7&site=www.wisestamp.com/email-install>


Em 24 de agosto de 2010 14:15, mrgraucio <escrevenacon...@yahoo.com.br>escreveu:

>
>
> Grande Julio! Isso eu aprendi muito bem contigo no curso de Shell em
> Floripa!
>
> Esta parte eu consegui fazer, muito obrigado pela resposta e eu tinha
> conseguido fazer exatamente como vc, porém estou com a dificuldade agora de
> pegar somente as linhas que começam com 1 e eliminar as que começam com 1
> sucedido de 2.
>
> Então, vou ter dois tipos de registros, os que não têm sucessão pelo número
> 2 e os que têm. Pensei em usar um diff e patch, o que acha? Tornará o
> processo mais lento? Estes arquivos de remessa têm normalmente de 5 a 10 mil
> registros desses.
>
> Grande abraço!
>
> --- Em shell-script@yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>,
> "Julio C. Neves" <julio.ne...@...> escreveu
>
> >
> > Não sei se te entendi, mas me pareceu que seu problema era juntar as
> linhas
> > que começam com 2 às linhas anteriores à estas. Se assim for, uma boa
> forma
> > de fazer um one-liner seria:
> >
> > grep -B1 ^2 Arquivo | grep -v '^-*$' | paste -d "" - -
> >
> > Onde o grep procura as linhas começadas por 2 (^2) e vem junto a linha
> > anterior (-B1). A saída disso terá um separador '--' entre cada par de
> > linhas, então o grep seguinte (^-*$) visa excluir estas linhas.
> >
> > Para concatená-las, usei o paste com delimitador vazio (-d "" [o branco
> > entre o d e a 1ª aspa é obrigatório]) e o par de traços, onde cada traço
> > receberá uma linha da entrada primária.
> >
> > Abraços,
> > Julio
> > Cursos de Shell e Zenity em 2 fins de semana?
> > - SE turma de Shell/Zenity em 13/09 - clemis...@...
>
> > - SP turma de Shell em 14/08 - www.4Linux.com.br
> > <http://www.4linux.com.br/>
>
> > - Turmas fechadas em outras cidades ligue (21)8112-9988.
> >
> > --- @ WiseStamp
> > Signature<
> http://my.wisestamp.com/link?u=63n3xfgzns9kh5v7&site=www.wisestamp.com/email-install
> >.
> > Get it now<
> http://my.wisestamp.com/link?u=63n3xfgzns9kh5v7&site=www.wisestamp.com/email-install
> >
> >
> >
> > Em 23 de agosto de 2010 21:58, mrgraucio <escrevenacon...@...>escreveu:
>
> >
> > >
> > >
> > > Olá pessoal, quebrei muito a cabeça e decidi correr para vós.
> > >
> > > Preciso fazer o seguinte, eu recebo arquivos de remessas em que cada
> > > transação as vezes tem 1 linha e as vezes tem 2.
> > >
> > > A primeira linha tem 80 caracteres. A segunda varia de acordo com a
> > > transação.
> > >
> > > A primeira sempre começa com o número 1 indicando o tipo da transação,
> bem
> > > como a segunda que, quando existente, sempre começa com 2.
> > >
> > > O meu dilema é como fazer com que o shell detecte que, quando a próxima
> > > linha iniciar por 2 (se ela existir) eu a leia juntamente com a
> anterior?
> > >
> > > Eu tenho em mente fazer o seguinte, faria a leitura inicialmente de
> tudo
> > > que começa com 1 mas a linha seguinte não começa com 2 e depois
> elimiaria
> > > tudo que começa com este mesmo resultado, adicionando o -v no grep no
> > > comando dado anteriormente, correto?
> > >
> > > Ná prática a coisa acontece com o recebimento de um arquivo de lotes
> que
> > > vem cheinho de linhazinhas mais ou menos como a seguir:
> > >
> > >
> > >
> 10012010052500289870989500400642010052516141900000000000000000100600010900100000
> > >
> > >
> 10012010052500289870989500410642010052516171300000000000000000100600010900100000
> > >
> > >
> 10012010052500289870989500420642010052516190600000000000000000100600010900100000
> > >
> > >
> 10012010052500289870989500440592010052516260800000000000000000100600010900100000
> > >
> > >
> 10012010052500289870989500451072010052516265800000000000000000100600010900100000
> > > 2008200000070835
> > >
> > >
> 10012010052500289870989500460592010052516421500000000000000000100600010900100000
> > >
> > >
> 10012010052500289870989500471072010052516424300000000000000000100600010900100000
> > > 2008200000070837
> > >
> > > Gostaria então de primeiramente separar os valores que unicamente
> começam
> > > com 1 mas não tem a linha subsequente iniciando por 2, após fazer essa
> > > separação, só adicionaria o -v ao grep, caso seja com ele a
> possibilidade de
> > > fazer isso.
> > >
> > > Espero ter sido claro e me desculpem pela extensão da pergunta, mas
> temo
> > > não explicar corretamente a necessidade.
> > >
> > > Grande abraço!
> > >
> > >
> > >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  
>


[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
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

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:
    shell-script-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a