The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Linux Shell Pergunta: Como imprimir o shell script nome? meili100 UNIX para Dummies Perguntas & Respostas 3 07-01-2008 02:55
Shell script pergunta jbou1087 Programação Shell Script e 2 05-06-2008 03:01
Um shell script pergunta surjyap Programação Shell Script e 2 11-24-2005 05:48
Basta shell script pergunta frustrated1 Programação Shell Script e 8 07-03-2005 03:22
BASH shell script pergunta ewarmour Programação Shell Script e 3 05-24-2002 06:10

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 08-28-2007
tselvanin tselvanin is offline
Usuário
  
 

Join Date: Sep 2003
Lugares: 10
shell script pergunta

Estou usando ksh.

Existe um relatório com montantes no seguinte formato,

34343,67 -
2343,45
23434,89 -

Eu quero a soma de todos os montantes. Para este primeiro eu preciso saber se há um sinal de menos no final e prefixo-lo antes de somar. Como conseguir isso?

Pensei em usar um array para armazenar os valores e, em seguida, soma-se os valores usando um ciclo while. Mas não tem nenhum indício como o de primeiro converter os montantes a seguir formato,

-34343,67
2343,45
-23434,89

Qualquer ajuda é apreciada.
Obrigado!
  #2 (permalink)  
Old 08-28-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Usuário
  
 

Join Date: Sep 2006
Posts: 2.553
Código:
awk '/-$/ { c=c-$0 }
     !/-$/ { c=c+$0 }
END {print c }' "file"
  #3 (permalink)  
Old 08-28-2007
blowtorch's Avatar
maçarico blowtorch is offline Forum Advisor  
Adepto
  
 

Join Data: dezembro 2004
Local: Singapura
Posts: 2.350
Como sobre isso?
Código:
#!/usr/bin/ksh
final=""
while read line; do
        case $line in
                [0-9]*.*[0-9]*-) final=$final-${line%-*};;
                *) final=$final+$line ;;
        esac
done < /path_to_file_with_numbers
finalsum=$(echo $final | bc)
echo $finalsum
Eu não estou fazendo muito erro verificação ou validação aqui. O script espera números válidos.
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 06:16.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0