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

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

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


From: Camilo Silva
Subject: Res: [shell-script] Dificuldade de fazer um scrip de shell
Date: Tue, 26 Dec 2006 13:16:34 -0800 (PST)

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



reply via email to

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