[zadanie dodatkowe - opcjonalne]
Napisz skrypt awk do generowania indeksu tekstu wejściowego. Indeksem
będzie lista słów, po jednym w wierszu, z listą numerów wierszy tekstu
wejściowego, w których słowo wystąpiło. Skrypt powinien być plikiem z
czystym kodem awk, wykonywalnym dzięki mechanizmowi #!.
Spowoduje to generowanie na wyjściu indeksu nieposortowanego.
Akceptujemy to, pozostawiając kwestię sortowania indeksu (oraz
ewentualnego formatowania go według potrzeb) aplikacji która go wywoła.
Podobnie, ignorujemy występowanie znaków interpunkcji w tekście źródłowym.
Jeśli pojawiają się w nim konstrukcje typu:
Podczas kolacji przemawiali:mama,tata,wuja.
to można odpowiednio odfiltrować znaki interpunkcji filtrami
zewnętrznymi, aby indeks zbudował się wyłącznie dla słów.
(a) W najprostszej wersji, chcemy uzyskać listę numerów wierszy
oddzielonych przecinkami, np.:
mama - 1,1,2,3,3,4,5,5,10,18,19,22,25,35
tata - 1,1,3,3,5,5,6,6,7,7,8,13,23,44
wuja - 11,12,17,27,29,39
(b) Wersja trudniejsza: należy dodać dwie poprawki. (1) Jeśli słowo
występuje w kolejnych wierszach, to zamiast listy poszczególnych
wierszy, w indeksie powinny pojawić się przedziały. (2) Jeśli słowo
występuje wiele razy w jednym wierszu, to numer wiersza nie powinien
się powtarzać, tylko powinien być zaznaczony gwiazdką. Jeśli dany
numer wiersza podpada pod oba przypadki (1) i (2), to należy
uwzględnić tylko (1), np.:
mama - 1-5,10,18-19,22,25,35
tata - 1*,3*,5-8,13,23,44
wuja - 11-12,17,27,29,39