The UNIX and Linux Forums  

Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
Unix: mail küldés kérdés .. pls help me soon bobprabhu A UNIX a dummies Kérdések és válaszok 2 02-01-2008 05:44 AM
Unix Login Issue freakygs A UNIX a fejlett és szakértői Felhasználók 1 01-16-2008 08:21 AM
Kérdés Unix cat paranccsal RcR Shell programozás és Scripting 13 10-31-2007 05:54 AM
Unix parancs mmin kérdés Mohee A UNIX a dummies Kérdések és válaszok 1 08-30-2007 11:41 PM
Unix és Windows környezetben kérdés Aisha Sturkey A UNIX a dummies Kérdések és válaszok 6 05-02-2005 10: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 Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 02-12-2008
thambi thambi is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2007
Hozzászólások: 32
Question Unix Arithmatic működésének kérdését, adattípus kérdés

Szia,
Nekem van egy shell scripting. Ez eltart 7 jegyű szám minden sorban, és adjunk hozzá 7 jegyű szám a következő további vonalak (a rendes mellett).

Pl.:

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


Mint ez én vagyok, amelyek mintegy 1500000 nyilvántartásokat. Hozzáadása után, kapok az eredmény 2147483647 de a tényleges eredmény 2156379608. Megtaláltam a kiváltó oka a probléma, hogy a Unix temproary változó fér csak 2156379608 (Range of integer), mivel a 32 bit. Pl:

\u003d 2147483647 Egy
az expr $ a + 2

akkor megkapod a negatív eredményt. Mert míg expr dolgozik, az eredmény fogják tárolni a belső ideiglenes változó regisztráció akkor lesz az eredmény .. de különösen az ideiglenes változó vagy regisztráljon befogadására képes csak 2147483647 .. ha átlépi ezt a határt, akkor kap a szemét, mint érték-érték ve ... ez az én finiding ezt a kérdést .. De azt akarom, hogy a felbontás az ebben a kérdésben. hogyan kell hozzáadni vagy nem arthimatic opration ha én akarom, hogy eredmény több, mint határ (2147483647). Úgy értem

\u003d 2147483647 Egy
az expr $ a + 2

ehhez szükségem van-hoz kap a jobb eredmény helyett ve-érték.
  #2 (permalink)  
Old 02-12-2008
Jim McNAMARA jim mcnamara is online now Forum Staff  
...@...
  
 

Join Date: Feb 2004
Helyszín: NM
Hozzászólások: 5.808
Ez kezelni akár 15 signifcant számjegy:

Kód:
 awk ' {total+=$0} END { print total} ' file

Ez fogantyú nagyobb számokat verziójától függően a bc:

Kód:
#/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
Regisztrált felhasználó
  
 

Join Date: Mar 2007
Hozzászólások: 32
Question Válaszol

Szia,

Köszönöm. Azt is használ az awk a arthitmatic működését. De nem tudnak exepected eredményt. Próbáltam a saját kódot is.

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

Megvan az eredmény expontial formátumban. De szükségem van az eredmény minden számjegy. Hogyan lehet ezt elérni?. Aztán a második módszer, amely akkor jelenik meg használatával bc számológép vesz több időt complte. Ezért úgy gondolom, awk a legjobb módszer. Mostantól kapok eredményt a 2.15638e 09. de ahhoz, hogy teljes eredményt, mint a 2156380000. Kérem, segítsen nekem.

Üdvözlettel,
Thambi
  #4 (permalink)  
Old 02-13-2008
manas_ranjan's Avatar
manas_ranjan manas_ranjan is offline
Regisztrált felhasználó
  
 

Join Date: Jul 2007
Helyszín: Amsterdam
Posts: 177
tudod kérjük, adja listáját hash_column_wrong.txt???
  #5 (permalink)  
Old 02-13-2008
thambi thambi is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2007
Hozzászólások: 32
Válasz ..

Amint azt már említettem, ez csak tartalmazza a 7 digiti szám minden sorban. Mint ilyen, ez a fájl mintegy 150.000. Már csak fel kell vennünk az összes sort .. ennyi az egész

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  
Moderátor ala Mode
  
 

Join Date: Feb 2007
Helyszín: Innsbruck, Ausztria
Hozzászólások: 1893
Használja awk, hogy előkészítsék a fájl bc.

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

Feltéve, bc használja a tetszőleges pontosságú könyvtár, akkor nem lesz probléma itt.
  #7 (permalink)  
Old 02-13-2008
thambi thambi is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2007
Hozzászólások: 32
Válasz ....

Mikor ÉN fuss a parancsot az alábbi

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

Megvan az alábbi kivétel ..

csomagban space túllépni line 1,
csomagban space túllépni line 1,
csomagban space túllépni line 1,

ez köszönhető a \ n karaktert, akkor a sor végére?.
Closed Thread

Könyvjelzõk

Címkék
bc, nagy számok, mamlasz, összeg oszlop

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 10:03 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0