Technologie informacyjne
Transkrypt
Technologie informacyjne
Technologie informacyjne Laboratorium, lista 4 We wszystkich częściach będziemy pracować w systemie Linux. Część 1 (przygotowanie) Polecenie wget ściąga plik z internetu i zapisuje go na dysku. Wykorzystamy je do zdobycia pliku testowego. 1. Ściągnij stronę o liczbie π z Wikipedii w języku Polskim (https://pl. wikipedia.org/wiki/Pi). Możesz posłużyć się komendą wget https://pl.wikipedia.org/wiki/Pi -O pi.html przy czym opcja -O pozwalaj podać nazwę pliku do zapisu. Część 2 (strumienie w Linuxie) Materiał w dużej mierze demonstracyjny. Dla osób zainteresowanych przerobieniem tego materiału dokładniej we własnym zakresie (nie ma go na wykładzie), proponujemy artykuły firmy IBM opublikowane pod adresem https://www.ibm.com/developerworks/library/l-lpic1-map/index.html# 101-103, w szczególności http://www.ibm.com/developerworks/library/ l-lpic1-v3-103-4. Część 3 (wyszukiwanie) 1. 2. 3. 4. 5. 6. Znajdź w artykule i podświetl słowo „ludolfina” pisane małą literą. W ilu liniach w artykule występuje to słowo? Ile różnych odmian nazwiska Euler pojawia się w artykule? Ile razy w artykule pojawia się nazwisko Euler, a ile razy Archimedes? Ile razy w artykule występuje słowo „pi” pisane wielką bądź małą literą? Znajdź w artykule wszystkie adresy stron internetowych zawierające de.wikipedia.org — na podstawie tego ustal, jak liczba π nazywa się po niemiecku. 1 Ściągawka z programu grep Polecenie grep przeszukuje wskazany plik, szukając tekstu pasującego do wzorca. Jako wynik wyświetla wiersze zawierające ten wzorzec. Można podać więcej plików do przeszukania, wtedy będą wyświetlone zarówno pasujące wiersze tekstu, jak i źródło (nazwa pliku), z którego pochodzą. Wyszukiwanie wzorca w pliku odbywa się za pomocą komendy: grep "wzorzec" plik Dodatkowo możemy podać szereg opcji, pozwalających na sterowanie funkcjami programu grep. Opcje funkcji grep pozwalające na sterowanie kontekstem: — --color[=KIEDY] opcja ta powoduje kolorowanie szukanego wzorca, szukany wzorzec. KIEDY może przyjmować wartości always (zawsze), never (nigdy) albo auto (automatycznie), — -C N (--context=N) wypisuje N linii kontekstu w którym występuje szukany wzorzec. Opcje funkcji grep pozwalające na sterowanie danymi wyjściowymi: — -n (--line-number) wypisuje numery linii w wyniku, — -l (--files-with-matches) wypisuje tylko nazwy plików zawierających szukaną frazę, — -c (--count) wyświetla tylko liczbę linii w których znajduje się wzorzec, — -o (--only-matching) wyświetla tylko dopasowane słowa, nie całe linie. Opcje funkcji grep pozwalające na sterowanie danymi wejściowymi: — -r przeszukiwanie całych drzew katalogów, — --include=wzorzec przeszukuje tylko pliki o nazwach pasujących do wzorca (wzorzec może zawierać na przykład * — dowolny ciąg znaków, ? — dowolny znak, [...] — alternatywne wersje). — --exclude=wzorzec przeszukuje tylko pliki o nazwach niepasujących do wzorca. To tylko część dostępnych opcji. Więcej możemy przeczytać korzystając z pomocy w grep --help lub man grep Metaznaki: — ^ początek wiersza, — $ koniec wiersza, — \< początek słowa, — \> koniec słowa, — [znaki] występuje jeden znak z zestawu, 2 — — — — — [^znaki] nie występuje żaden znak z zestawu, . dowolny pojedynczy znak, + występuje jeden lub więcej wypisanych znaków, * występuje zero lub więcej wypisanych znaków, {min,max} wyrażenie występuje minimum min razy a maksymalnie max razy, — \(a\|b\|...\) jedno z wyrażeń. Przykłady: 1. Wyszukanie w tekście słów „Euler” oraz „Eulera”, ale nie „Eulerowi”: grep "\<\(Euler\|Eulera\)\>" pi.html --color albo grep "\<Euler[a]\?\>" pi.html --color 2. Wyszukanie w tekście liczby zapisanej z kropką lub przecinkiem, zaczynającej się od 3.14: grep "\<3[.,]14[0-9 ]*\>" pi.html --color 3. Liczba linii zawierająca linki w pliku (zakładamy postać <a parametry>tekst</a>): grep "<a[^>]*>" pi.html --count 4. Różne odmiany nazwiska Archimedes: grep "\<Archimedes[a-z]*\>" pi.html -o Wyniki dowolnej komendy możemy posortować komendą sort (dodanie opcji -u powoduje, że duplikaty są ignorowane): grep "\<Archimedes[a-z]*\>" pi.html -o | sort -u Komenda wc pozwala na liczenie (-l — lini, -m — znaków, -w — słów): grep "\<Archimedes[a-z]*\>" pi.html -o | sort -u | wc -l (jak widać, w artykule są trzy odmiany nazwiska Archimedes: Archimedes, Archimedesa, Archimedesowi).a 5. Adresy stron internetowych zawierające pl.wikipedia.org: grep "\"[^\"]*pl.wikipedia.org[^\"]*\"" pi.html -o 3