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

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

Re: Dificuldade de fazer um scrip de shell


From: JHOL XD
Subject: Re: Dificuldade de fazer um scrip de shell
Date: Thu, 28 Dec 2006 18:34:19 -0000
User-agent: eGroups-EW/0.82

Tiago nessa expressão 

cut -c1-2,16-21 teste | awk '/^04/{total += $1 % 4E6}END{print total}'

não intendi oq vc fez pra somar vc poderia me explica oq é essa 
expressão? 

{total += $1 % 4E6}

--- Em address@hidden, "Tiago Barcellos Peczenyj" 
<tiago.peczenyj@...> escreveu
>
> AWK sem substring:
> 
> $ cut -c1-2,16-21 teste | awk '/^04/{total += $1 % 4E6}END{print 
total}'
> 762
> 
> Agora, aloprando um pouco:
> 
> $ grep ^04 teste | cut -c16-21 | xargs -i -n1 seq 1 {} | wc -l
> 762
> 
> []´s Tiago
> 
> On 12/26/06, Camilo Silva <jcamillosilva@...> wrote:
> >
> >   JHOL ,
> >
> > Não sei se ajudaria mas pode-se tentar
> >
> > Digamos que seu arquivo teste.txt possuísse o conteúdo :
> >
> > 04067174401000100038101511711060824 0000 - linha 1
> > 04067174402000100038101511711060824 0000 - linha 2
> > 02067305475002200038211101711060000 0042 - linha 3
> > 01067305480002200038811101711060000 0042 - linha 4
> > 01068157444002200262911101711060000 0043 - linha 5
> > 03067305481000300038911101711060000 0022 - linha 6
> > 01067305481000300038911101711060000 0022 - linha 7
> >
> > cat teste.txt | sed -n '/^04/p' | while read a; do echo 
${a:16:5}; done |
> > awk '{ tot = tot + $1} END { print"resultado ==> " tot}'
> >
> > resultado ==> 762
> >
> > ----- Mensagem original ----
> > De: JHOL XD <jonatas_net@... <jonatas_net%40yahoo.com.br>>
> > Para: address@hidden <shell-script%
40yahoogrupos.com.br>
> > Enviadas: Terça-feira, 26 de Dezembro de 2006 13:07:20
> > Assunto: [shell-script] Dificuldade de fazer um scrip de shell
> >
> > Ola pessoal meu problema é o seguinte
> >
> > estou procurando um combo de comandos em shell script para fazer
> > em uma linha de +ou- 39 carteres numericos em um arquivo de mais 
de
> > 20mil linhas
> >
> > selecionar os dois primeiros caracteres em um numero especifico
> > selecionar do 16 caractere ao 21 caractere e essa sequencia de
> > cararteres seja somada
> >
> > um ex
> >
> > 0406717440100010003 8101511711060824 0000 - linha 1
> > 0406717440200010003 8101511711060824 0000 - linha 2
> > 0206730547500220003 8211101711060000 0042 - linha 3
> > 0106730548000220003 8811101711060000 0042 - linha 4
> > 0106815744400220026 2911101711060000 0043 - linha 5
> > 0306730548100030003 8911101711060000 0022 - linha 6
> > 0106730548100030003 8911101711060000 0022 - linha 7
> >
> > preciso selecionar todas as linhas com começo 04 e somar a 
sequencia
> > do 16 caractere ao 21 caratere
> > dessa linha no caso desse ex selecionaria
> >
> > 0406717440100010003 8101511711060824 0000 - linha 1
> > 0406717440200010003 8101511711060824 0000 - linha 2
> >
> > dai somaria a sequencia da 16 ao 21 caractere no caso 000381
> >
> > 000381
> > +000381
> > 000762
> >
> > no caso exiba o numero 000762
> >
> > eu cheguei até esse comando até
> >
> > agora cat arquivo_exemplo | grep -E '^04' | cut -c 16-21
> >
> > por favor me ajudem desde já agradeço
> >
> > __________________________________________________
> > Fale com seus amigos de graça com o novo Yahoo! Messenger
> > http://br.messenger.yahoo.com/
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >  
> >
> 
> 
> 
> -- 
> Tiago B Peczenyj
> Linux User #405772
> 
> # cd /pub
> # more beer
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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