Nowe posty

Autor Wątek: przekazywanie danych do tablicy  (Przeczytany 2957 razy)

Oval

  • Gość
przekazywanie danych do tablicy
« dnia: 2012-11-24, 22:42:19 »
Witam,
Po użyciu polecenia:
cat plik.html | grep -o tekst | sed 's/cośtam//' | tail -10 | awk NR==n

Chciałbym aby dane zostały przekazane do tablicy gdzie kolejne rekordy to kolejne wartości naszego "n" przy NR==n.

Mój kod po obróbce który chciałbym umieścić w tablicy wygląda następująco (bez awk NR==n):

12354
12345
54334
76534
23465
87634
itd.

Ogólnie jest n wierszy 5 cyfrowych.
Chciałbym aby przekazywanie do tablicy było wykonane w pętli, tak aby łatwo można było zmieniać liczbę wartości które mają zostać przekazane.

coś w tym stylu:
for i in `seq 1 $n` do
zmienna"$n"[]=`cat plik.html | grep -o tekst | sed 's/cośtam//' | tail -10 | awk NR==n`
done
i potem aby tą zmienną można było wrzucić do linku do strony www np:

for n in `seq 1 $n` do
firefox 'www.strona.pl/skrypt.php?link="{$zmienna[n]}"'
sleep 1;
done

Poradźcie jak to zrobić, bo mi się już nerwy przy tym puszczają ;/
Pozdrawiam :)

xavery

  • Gość
przekazywanie danych do tablicy
« Odpowiedź #1 dnia: 2012-11-26, 12:29:19 »
Za dużo tych cat, grep, sed i awk w jednym. Proponowałbym wrzucenie wszystkiego do jednego awk i zapisanie wyników w tablicy. Np:

awk '/regexp wyszukujący/ {BEGIN i=0;} {tab[i++]=$0;} END{for (z in tab) print tab[z];}' plik.html
Oczywiście powyższy kod ma charakter poglądowy. W zależności od danych źródłowych i oczekiwanych rezultatów należałoby dostroić wyrażenia regularne i sekcję END opracowującą wyniki.