Strona 1 z 1

Awk – sumowanie przypisanych liczb?

: 20 sty 2012, 22:41
autor: Mały 1
Witam!

Mam taki problem.

Chciałbym w awk dodać dwie liczby np.:

Kod: Zaznacz cały

awk '{ sum += 3 + 3 } END { print sum }' 
ale dostaje pusty wynik.

Jak prawidłowo dodaje się liczby, które są przypisane przez użytkownika?

Dziękuje za informacje.

Re: Awk – sumowanie przypisanych liczb?

: 20 sty 2012, 23:12
autor: leon1313
echo ""| awk '{ sum = 3 + 3 } END { print sum }'
To echo jest potrzebne, bo awk oczekuje danych wejciowych z pliku lub standardowego wejscia..

Re: Awk – sumowanie przypisanych liczb?

: 20 sty 2012, 23:15
autor: Mały 1
Rozumiem, ale jak to zrobić bez echo? Można to zrobić tylko za pomocą awk?

Re: Awk – sumowanie przypisanych liczb?

: 21 sty 2012, 01:32
autor: leon1313
W bloku BEGIN, który jest wykonywany przed pobraniem danych wejściowych.

Kod: Zaznacz cały

awk 'BEGIN{ sum = 3 + 3 ; print sum}' 

Re: Awk – sumowanie przypisanych liczb?

: 21 sty 2012, 08:54
autor: Mały 1
Dziękuje, właśnie na myśli miałem takie rozwiązanie.

Dopiero się uczę awk więc przedstawię kolejny przykład z którym mam problem:

Tym poleceniem pobieram sumę z pliku

Kod: Zaznacz cały

awk '{a+=$1} END {print a}' < plik
a tym z drugiego:

Kod: Zaznacz cały

awk '{a+=$1} END {print a}' < plik2
Teraz chciałbym zsumować wynik powyższych pleceń, ale nie wiem jak to zapisać w jednej linii?

Kod: Zaznacz cały

awk '{ sum += awk '{a+=$1} END {print a}' < plik + awk '{a+=$1} END {print a}' < plik2 } END print sum }'

Re: Awk – sumowanie przypisanych liczb?

: 21 sty 2012, 10:14
autor: ethanak
Zajrzyj do "man awk" i zwróć uwagę na getline