Srodowisko programisty - Wyszukiwanie
Transkrypt
Srodowisko programisty - Wyszukiwanie
Środowisko programisty Wyszukiwanie dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Cz˛estochowie 25 listopada 2013 dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 1 / 15 Wyszukiwanie wzorców w plikach tekstowych Przeszukiwanie bazy nazw plików $ locate bash-completion Przeszukiwanie bazy nazw plików bez uwzgledniania ˛ wielkości liter $ locate -i bash-completion Zarzadzanie ˛ wynikami otrzymanymi podczas przeszukiwania bazy nazw plików $ locate -n 3 bash-completion Aktualizowanie bazy danych używanej przez locate $ updatedb $ time updatedb dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 2 / 15 Wyszukiwanie wzorców w plikach tekstowych Szukanie wzorców w plikach tekstowych $ grep bzip2 *.tex Podstawy wyszukiwania wzorców w plikach tekstowych $ grep studenci ! *.tex $ grep "studenci !" *.tex $ grep 'studenci !' *.tex Rekurencyjne wyszukiwanie tekstu w plikach $ grep -R 'studenci !' * Szukanie tekstu w plikach bez uwzgledniania ˛ wielkości liter $ grep -R -i 'studenci !' * Wyszukiwanie całych słów w plikach $ grep -w 'Linus' * Wyświetlanie nazw plików zawierajacych ˛ szukane słowa $ grep -l 'Linus' * dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 3 / 15 Wyszukiwanie wzorców w plikach tekstowych Wyświetlanie numerów wierszy, w których wystepuj ˛ a˛ szukane słowa $ grep -n 'Linus' * Wyszukiwanie słów w wynikach poleceń $ ls -l | grep tex Wyświetlanie kontekstu słów wystepuj ˛ acych ˛ w plikach $ grep -B 2 Torvalds *.tex $ grep -A 2 Torvalds *.tex $ grep -C 2 Torvalds *.tex Wyświetlanie wierszy, w których nie wystepuje ˛ określone słowo $ ls -l | grep -v tex Wyszukiwanie słów w wynikach wyszukiwania dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 4 / 15 Wyszukiwanie wzorców w plikach tekstowych Metaznaki Symbol . * grep + + egrep + + ˆ + + $ + + \ [] + + + + \( \) + - dr Andrzej Zbrzezny (IMI AJD) Znaczenie Dopasowuje dowolny znak Dopasowuje zero lub wiecej ˛ znaków poprzedzajacych ˛ Dopasowuje poczatek ˛ wiersza lub ciagu ˛ znaków Dopasowuje koniec wiersza lub ciagu ˛ znaków Cytuje nastepny ˛ znak Dopasowuje jeden z elementów zbioru Zachowuje wzór w celu wykorzystania w przyszłości Środowisko programisty 25 listopada 2013 5 / 15 Wyszukiwanie wzorców w plikach tekstowych Metaznaki Symbol \n { } grep + - egrep + \{ \} + - + - + ? - + | - + ( ) - + dr Andrzej Zbrzezny (IMI AJD) Znaczenie Odtwarza określony wzór Dopasowuje zakres wysta˛ pień Dopasowuje zakres wysta˛ pień Dopasowuje jeden lub wiecej ˛ znaków poprzedzajacych ˛ Dopasowuje zero lub jeden znaków poprzedzajacych ˛ Oddziela od siebie możliwości dopasowania Grupuje wyrażenia Środowisko programisty 25 listopada 2013 6 / 15 Wyszukiwanie wzorców w plikach tekstowych Przykłady wyrażeń regularnych dla programu grep Wzorzec kot ˆkot kot$ ˆkot$ [Kk]ot k[ioa]t k.t ˆ...$ ˆ\. ˆ\.[a-z][a-z] dr Andrzej Zbrzezny (IMI AJD) Działanie Ciag ˛ znaków kot kot na poczatku ˛ wiersza kot na końcu wiersza kot jako jedyne słowo w wierszu Kot lub kot Druga litera to i, o lub a Druga litera to dowolny znak Dowolny wiersz zawierajacy ˛ dokładnie trzy znaki Dowolny wiersz zaczynajacy ˛ sie˛ od kropki Jak wyzej, z tym że po kropce musza˛ wystapić dwie małe litery Środowisko programisty 25 listopada 2013 7 / 15 Wyszukiwanie wzorców w plikach tekstowych Przykłady wyrażeń regularnych dla programu grep Wzorzec kot. "słowo" "*słowo"* [A-Z][A-Z]* [A-Z]* [A-Z].* [A-Z][a-z] [A-Z][a-z] [ˆA-Za-z0-9] dr Andrzej Zbrzezny (IMI AJD) Działanie kot, kotara, kotlina i tak dalej słowo w cudzysłowach słowo w cudzysłowach, z jednym cudzysłowem lub bez cudzysłowów Jeden lub wiecej ˛ znaków bed ˛ acych ˛ duża˛ litera˛ Zero lub wiecej ˛ znaków bed ˛ acych ˛ duża˛ litera˛ Duża litera po której wystepuje zero lub wiecej ˛ znaków Duża lub mała litera Duża lub mała litera Dowolny znak nie bed ˛ acy ˛ litera˛ ani cyfra˛ Środowisko programisty 25 listopada 2013 8 / 15 Wyszukiwanie wzorców w plikach tekstowych Przykłady wyrażeń regularnych dla programu egrep Wzorzec [A-Z]+ kot|las|dym 80[2-4]?86 80[2-4]?86|Pentium(-II)? firm(a|y) dr Andrzej Zbrzezny (IMI AJD) Działanie Jeden lub wiecej ˛ znaków bed ˛ acych ˛ duża˛ litera˛ Jedno ze słów kot, las lub dym 8086, 80286, 80386 lub 80486 8086, 80286, 80386, 80486, Pentium lub Pentium-II firma lub firmy Środowisko programisty 25 listopada 2013 9 / 15 Wyszukiwanie plików Polecenie find Wyszukiwanie plików według nazwy $ find . -name python $ find . -name '*python*' $ find . -iname '*python*' $ find ./myLatex -iname '*python*' $ find ∼/myLatex/ -iname '*python*' Wyszukiwanie plików według właściciela $ find -user andrzej $ find ! -user andrzej Wyszukiwanie plików według grupy $ find -group users $ find ! -group users dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 10 / 15 Wyszukiwanie plików Polecenie find Wyszukiwanie plików według rozmiaru $ find -size 6 $ find -size -6 $ find -size +6 Stosowane przyrostki Przyrostek Znaczenie b Bloki 512 bajtów (jednostka domyślna) c Bajty k Kilobajty (kB) M Megabajty (MB) G Gigabajty (GB) dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 11 / 15 Wyszukiwanie plików Polecenie find Wyszukiwanie plików według typu $ find -type d Typy plików Litera określ. typ pliku f d l b c p s dr Andrzej Zbrzezny (IMI AJD) Znaczenie Zwykły plik Katalog Miekkie ˛ dowiazanie ˛ symboliczne Specjalny plik urzadzenia ˛ blokowego Specjalny plik urzadzenia ˛ znakowego Kolejka FIFO Gniazdo Środowisko programisty 25 listopada 2013 12 / 15 Wyszukiwanie plików Polecenie find – inne kryteria wyszukiwania Kryterium -atime n -mtime n -newer plik -links n -perm p -user użytkownik -group grupa -empty dr Andrzej Zbrzezny (IMI AJD) Znaczenie Ostatni dostep ˛ miał miejsce n dni temu Plik został zmodyfikowany n dni temu Wyszukiwany plik został zmodyfikowany wcześniej niż podany plik Plik zawiera dokładnie n twardych dowia˛ zań Plik ma uprawnienia, gdzie p to liczbowy tryb dostepu ˛ Właścicielem pliku jest użytkownik Właścicielem pliku jest grupa Puste pliki Środowisko programisty 25 listopada 2013 13 / 15 Wyszukiwanie plików Polecenie find Wyświetlanie wyników, jeśli spełnione sa˛ wszystkie warunki (AND) $ find -iname '*Python*' -a -type d Wyświetlanie wyników, jeśli spełniony jest którykolwiek z warunków (OR) $ find -iname '*Python*' -o -type d Wyświetlanie wyników, jeśli warunek nie jest spełniony (NOT) $ find ! -type f $ find ! -type d | wc -l dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 14 / 15 Wyszukiwanie plików Polecenie find Wykonywanie polecenia na każdym znalezionym pliku $ find -name '*.aux' -ok rm -f {} \; $ find -name '*.JPG' \ -exec rename JPG jpg {} \; Zapisywanie wyników wyszukiwania w pliku $ find -iname '*.mp3' -o -iname '*.ogg' \ -fprint MojaMuzyka.txt dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 15 / 15