The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Unix: mail verzenden probleem .. pls help me snel bobprabhu UNIX voor Dummies Questions & Answers 2 02-01-2008 05:44
Unix Login Issue freakygs UNIX for Advanced & Expert Gebruikers 1 01-16-2008 08:21
Probleem met Unix commando cat RCR Programmeren en Shell Scripting 13 10-31-2007 05:54
Unix commando mmin kwestie Mohee UNIX voor Dummies Questions & Answers 1 08-30-2007 10:41 PM
Unix in een Windows omgeving kwestie Aisha Sturkey UNIX voor Dummies Questions & Answers 6 05-02-2005 09:44 PM

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 02-12-2008
thambi thambi is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2007
Posts: 32
Question Unix Arithmatic operatie probleem datatype kwestie

Hoi,
Ik heb een shell scripting. Dit duurt 7 cijferige nummer in elke lijn en voeg 7 cijferig nummer met de volgende latere lijnen (normaal toevoeging).

Bijvoorbeeld:

0000001
0000220
0001235
0000022
0000023
...........
.........
........


Zoals dit Ik heb ongeveer 1500000 records. Na het toevoegen, krijg ik het resultaat 2147483647 maar feitelijke resultaat is 2156379608. Ik vond dat de oorzaak van dit probleem is dat Unix temproary variabele kan slechts 2156379608 (Bereik van integer) als het 32-bits. Voor bijvoorbeeld:

a \u003d 2147483647
expr $ a + 2

krijg je het negatieve resultaat. Want terwijl expr werken, het resultaat zal worden opgeslagen in het interne tijdelijke variabele of registreer dan krijg je het resultaat .. maar dat het bijzonder tijdelijke variabele of inschrijven kan slechts 2147483647 .. indien het kruisen deze limiet, kunt u de waarde als junk-ve waarden ... dit is mijn finiding voor dit probleem .. Maar ik wil zijn oplossing voor dit probleem. het toevoegen of doen arthimatic opration als ik willen hebben resultaat meer dan de limiet (2147483647). Ik bedoel

a \u003d 2147483647
expr $ a + 2

voor dit ik moet om de juiste resultaat in plaats van-ve waarde.
  #2 (permalink)  
Old 02-12-2008
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Locatie: NM
Berichten: 5.720
Dit zal behandelen maximaal 15 significante cijfers:
Code:
 awk ' {total+=$0} END { print total} ' file
Dit zal behandelen grotere aantallen, afhankelijk van uw versie van BC:
Code:
#/bin/ksh
total=0
while read value
do
    total=$(echo "$value + $total" | bc )
done < file
echo $total
  #3 (permalink)  
Old 02-13-2008
thambi thambi is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2007
Posts: 32
Question Antwoorden

Hoi,

Bedankt. We zijn ook met behulp van de awk voor arthitmatic operatie. Maar we krijgen geen exepected resultaat. Ik heb geprobeerd met je code.

$ Awk '(total + \u003d $ 0) END (print totaal)' hash_column_wrong.txt
2.15638e +09

Ik heb het resultaat in expontial formaat. Maar ik moet het resultaat met alle cijfers. Hoe dit te bereiken?. Dan tweede methode die u gebruikt de bc rekenmachine neemt meer tijd om complte. Dus ik denk dat awk is de beste methode. Vanaf nu krijg ik als resultaat 2.15638e +09. maar ik nodig om resultaat op als 2156380000. Please help me.

Groeten,
Thambi
  #4 (permalink)  
Old 02-13-2008
manas_ranjan's Avatar
manas_ranjan manas_ranjan is offline
Geregistreerde gebruiker
  
 

Join Date: juli 2007
Locatie: Amsterdam
Posts: 177
kunt u de lijst van hash_column_wrong.txt??
  #5 (permalink)  
Old 02-13-2008
thambi thambi is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2007
Posts: 32
Antwoorden ..

Zoals ik al vermeld, alleen bevat de 7 digitalisering aantal in elke rij. Als deze, dit bestand is ongeveer 150000. We hoeven alleen maar toe te voegen alle rijen .. dat is alles

0000001
0000343
0000001
0001426
0000001
0000718
0000162
0000103
0000021
0000011
0000016
0000312
0000026
0000031
0000005
0000022
0000001
0000001
0011845
0003713
0000001
0000011
0000001
0000001
0000001
..,.,
........
.......
  #6 (permalink)  
Old 02-13-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Join Date: Feb 2007
Locatie: Innsbruck, Oostenrijk
Berichten: 1884
Gebruik awk voor te bereiden het dossier voor Christus.

(Awk '(print $ 0 "+ \ \")' bigfile; echo 0;) | bc

Uitgaande van Christus is het gebruik van de willekeurige precisie bibliotheek, moet je niet hebben hier een probleem.
  #7 (permalink)  
Old 02-13-2008
thambi thambi is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2007
Posts: 32
Antwoorden ....

Toen ik de volgende commando

awk '(print $ 0 "+ \ \")' hash_column_wrong.txt | bc

Ik heb hieronder uitzondering ..

bundeling ruimte overschreden op lijn 1,
bundeling ruimte overschreden op lijn 1,
bundeling ruimte overschreden op lijn 1,

is het gevolg van \ n teken dat zich eind van de lijn?.
Closed Thread

Bladwijzers

Labels
bc, grote getallen, gawk, som van kolom

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 08:34 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0