The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Linux Shell Spørgsmål: hvordan du udskriver shell script navn? meili100 UNIX for dummyer Spørgsmål & svar 3 07-01-2008 02:55 PM
Shell script spørgsmål jbou1087 Shell Programmering og Scripting 2 05-06-2008 03:01 AM
En shell script spørgsmål surjyap Shell Programmering og Scripting 2 11-24-2005 05:48 AM
Simply shell script spørgsmål frustrated1 Shell Programmering og Scripting 8 07-03-2005 03:22 AM
Bash shell script spørgsmål ewarmour Shell Programmering og Scripting 3 05-24-2002 06:10 AM

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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 08-28-2007
tselvanin tselvanin is offline
Registreret Bruger
  
 

Join Date: Sep 2003
Stillinger: 10
shell script spørgsmål

Jeg bruger ksh.

Der er en rapport med beløbene i følgende format,

34343,67 -
2343,45
23434,89 -

Jeg vil gerne opsummere alle de beløb. For her er jeg først nødt til at finde ud af, om der er et minus ved udgangen og præfikset det før opsummering. Hvordan man kan opnå dette?

Jeg troede, for at benytte et array til at gemme værdierne og derefter opsummere størrelse ved hjælp af et stykke tid sløjfe. Men ikke har nogen anelse om, hvordan det første omregner beløbene til under format,

-34343,67
2343,45
-23434,89

Any help is appreciated.
Tak!
  #2 (permalink)  
Old 08-28-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Sep 2006
Stillinger: 2558

Code:
awk '/-$/ { c=c-$0 }
     !/-$/ { c=c+$0 }
END {print c }' "file"

  #3 (permalink)  
Old 08-28-2007
blowtorch's Avatar
blæselampe blowtorch is offline Forum Advisor  
Supporter
  
 

Join Date: Dec 2004
Location: Singapore
Posts: 2.350
How about this?

Code:
#!/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

Jeg ikke gør meget Fejlkontrol eller validere her. Scriptet forventer gyldige numre.
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 11:44 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0