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

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

Re: [shell-script] Re: Help


From: Valtoir
Subject: Re: [shell-script] Re: Help
Date: Thu, 14 Mar 2013 17:59:04 -0300

Que tal assim?

while read linha; do [ "${linha:0:1}" = ">" ] && arq=${linha#>>} || echo
$linha >> "$arq"; done < arquivo_gigante

O único detalhe é que os arquivos antes do último ficarão com uma linha em
branco no final, mas se isso for problema, é fácil resolver. Se puderes
testar com "time" essa solução e a dos outros, agradeço.

T+

Valtoir


Em 14 de março de 2013 12:53, Tiago Peczenyj <address@hidden>escreveu:

> medio
>
> $ awk 'COMANDOS' arquivo
>
>  vai executar os COMANDOS sob aquele arquivo. não precisa de cat.
>
> a primeira expressao vai incrementar a variavel id cada vez que vc
> encontrar a expressao >> cliente
>
> a segunda vai imprimir a linha corrente no arquivo CLIENTEX, onde X vai ser
> o valor da variavel id
>
> quando eu faco
>
> "CLIENTE" id
>
> eu estou concatenando strings, não coloque um _ que não vai funcionar
>
> boa sorte
>
> 2013/3/14 eduardo_a_s_amaral <address@hidden>
>
> > **
> >
> >
> > Olá Thiago!
> > Deixa eu ver se entendi.
> > Eu posso dar um cat no arquivo e redirecionar a saída para o awk, que por
> > sua vez vai criar uma variável chamada "id" com valor inicial=0, vai
> > procurar a palavra "cliente" e, cada vez que encontrar, vai jogar o
> > conteúdo para o arquivo correspondente e incrementar a variável "id", é
> > isso?
> >
> > O comando ficaria assim:
> > cat Arquivo.txt | awk -v id=0 '{/»CLIENTE/ {id++} {print $0} >
> > "CLIENTE"_id} Arquivo.txt
> >
> > Certo?
> >
> >
> > >
> > > Tente isso
> > >
> > > $awk -v id=0 '/>> cliente/ { id++ }
> > > { print $0 > "cliente" id }' file
> >
> >
> >
>
>
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://about.me/peczenyj
>
>
> [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
> ---------------------------------------------------------------------
> 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]



reply via email to

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