Sprzęt > Płyty główne, chipsety
brak sterowników do RAID VIA VT6410
klimat:
Jak moge dodac liczby w kolumnie.np
32 1254
32 35
34 344
31 4
i chce zsumowac druga kolumne, jak to moge zrobic?
Aha i zeby pomijal inne znaki np takie jak /\\';a!% itp
z gory dziekuje za odpowiedz
xis:
2005-05-23 15:34:15 klimat napisał:
> Jak moge dodac liczby w kolumnie.np
>
> 32 1254
> 32 35
> 34 344
> 31 4
>
>
> i chce zsumowac druga kolumne, jak to moge zrobic?
> Aha i zeby pomijal inne znaki np takie jak /\\';a!% itp
>
> z gory dziekuje za odpowiedz
Zeby pobrać akurat drugą linię pliku możesz posłużyć się komendami tail i head. Do zsumowania kolumn polecam awk.
Czyli coś np. takiego:
head -n 2 plik.txt | tail -n 1 | awk \\'{ print $1+$2 }\\'
Ta kombinacja head i tail nie wygląda najszczęśliwiej, ale w sumie nie miałem innego pomysłu.
Nie za bardzo rozumiem o co chodzi Ci z tymi niepotrzebnymi znakami.
Polecam:
man tail
man head
man awk
de_laurent:
2005-05-23 15:34:15 klimat napisał:
> Jak moge dodac liczby w kolumnie.np
>
> 32 1254
> 32 35
> 34 344
> 31 4
>
>
> i chce zsumowac druga kolumne, jak to moge zrobic?
> Aha i zeby pomijal inne znaki np takie jak /\\';a!% itp
>
> z gory dziekuje za odpowiedz
Tutaj na pewno znajdziesz odpowiedz:
http://www.matematyka.pl/
klimat:
head -n 2 plik.txt | tail -n 1 | awk \\'{ print $1+$2 }\\'
To jest zle bo dodaje mi linie poziomo a ja potrzebuje policzyc linie ale w PIONIE. Pomozcie
xis:
Faktycznie, nie zrozumialem pytania :)
suma=0; for i in `cat plik.txt | awk \\'{ print $2 }\\' `; do [ -z `echo $i | egrep \\'^[0-9]$\\'` ] || suma=`expr $suma + $i`; done; echo $suma
Troche wyjasnien:
sume ustawiamy domyslnie na 0,
pozniej wyswietlamy plik linijka po linijce (for $i in `cat....`)
filtrujemy wyjscie, zeby dostac tylko druga kolumne (awk)
sprawdzamy, czy mamy liczbe ( [ -z .... egrep ....] || ....)
dodajemy jesli tak (expr)
krecimy lub konczymy petle (done)
wyswietlamy wynik (echo)
Nawigacja
[#] Następna strona
Idź do wersji pełnej