|
[+] awk pobieranie rekordu o różnych polach za każdym razem
Bastian - 06-04-2010 11:51
Witam. Powiedzmy, że mam taki oto plik:
Gwiezdne wrota otworem stanęły W nich pojawiłaś się Ty Wszystkie smutki przeminęły Zaczęły spełniać się sny
Gwiezdna droga prowadzi mnie Do Twoich Kochanie drzwi Tak bardzo, bardzo kocham Cię Wszystkim co mam jesteś Ty
Chcę za pomocą awka wyciągnąć 2 i 3 linię jeżeli w pierwszej linii, powiedzmy na drugiej pozycji znajdzie się słowo "wrota". Próbuje tak:
awk '{{if ($2=="wrota") {next}} linia=$0 {for(linia=1;linia<=3;linia++) print linia}}'
Jednak to polecenie wypisuje tylko cyfry ponumerowanych linii od 1-3. Pewnie jakoś trzeba linie, które chcę wyświetlić ując w tablice i dopiero wyświetlać, ale nie wiem jak. Proszę o pomoc. Chodzi mi tylko o rozwiązanie z awk.
lessmian2 - 06-04-2010 20:36
Eh, nie rozumiem co Ty tu zakombinowałeś ;)
awk '{if ($2=="wrota"){start=NR};if(NR==start+1 || NR==start+2){print $0}}' plik_z_tekstem
Wypisze dwie następne linie, po znalezieniu słowa wrota na drugim polu.
Bastian - 06-04-2010 21:25
Eh, nie rozumiem co Ty tu zakombinowałeś ;)
awk '{if ($2=="wrota"){start=NR};if(NR==start+1 || NR==start+2){print $0}}' plik_z_tekstem
Wypisze dwie następne linie, po znalezieniu słowa wrota na drugim polu.
Na swoje usprawiedliwienie powiem tylko, że próbowałem tak chyba...:o tyle, że z FNR...teraz działa. Wstyd.
Dziękować :)
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|