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

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

Re: [shell-script] Dificuldade de fazer um scrip de shell


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Dificuldade de fazer um scrip de shell
Date: Thu, 28 Dec 2006 14:39:43 -0200

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 <address@hidden> 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 <address@hidden <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]