[+] W

Potrzebujesz pomocy z C, C++, perl, python, itp.
dawoz
Posty: 24
Rejestracja: 01 maja 2007, 12:22
Lokalizacja: WLKP

[+] Włączenie do pętli w bashu polecenia awk

Post autor: dawoz »

Witam serdecznie, mam następujący problem.
Mam plik tekstowy o takiej postaci:

Kod: Zaznacz cały

nagłówek1; nagłówek2; nagłówek3; itd aż do 45
wartość1;wartość2;wartość3; itd aż do 45
wartość1; wartość2;wartość3 itd aż do 45

itd
Jest to plik ze statystykami z sipp generowany automatycznie i teraz chcę napisać skrypt (a właściwie już go piszę), który zrobi mi coś takiego.

Jest pętla w bashu z licznikiem $LICZNIK wewnątrz niej wykonuje się polecenie awk:

Kod: Zaznacz cały

#
while [ $LICZNIK -ge 1 ] ; do
                awk 'BEGIN { FS = ";" } ; { print $j }' temp
                LICZNIK=$[LICZNIK - 1]
        done
Moje pytanie brzmi - czy można jakoś wstrzyknąć wartość licznika do polecenia awk, tak, żeby ten wypisał mi nie wartość licznika tylko pole które jest pod tą wartością.
Czyli:

Kod: Zaznacz cały

LICZNIK = 3
daje mi:

Kod: Zaznacz cały

 print $3
co z kolei wypisuje nagłówek3 na ekran.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Spróbuj czegoś takiego:

Kod: Zaznacz cały

while [ $LICZNIK -ge 1 ] ; do 
                awk -v licznik="$LICZNIK" ' BEGIN { FS = ";" } ; { print $licznik }' temp 
                LICZNIK=$[LICZNIK - 1] 
        done
Daj znać czy o to Ci chodziło.
dawoz
Posty: 24
Rejestracja: 01 maja 2007, 12:22
Lokalizacja: WLKP

Post autor: dawoz »

idealnie o to chodziło, dziękuję Ci.
ODPOWIEDZ