![]() |
|
|
google unix.com
|
|||||||
| Fórumok | Regisztráció | Fórum Szabályok | Linkek | Albumok | GYIK | Tagok listája | Naptár | Keres | Mai hozzászólások | Megjelöl Fórumok Olvas |
| 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 |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
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. |
|
||||
|
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
|
|
||||
|
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 |
|
||||
|
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 ..,., ........ ....... |
|
||||
|
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?. |
![]() |
| Könyvjelzõk |
| Címkék |
| bc, nagy számok, mamlasz, összeg oszlop |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|