Środowisko programisty Wyszukiwanie dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 25 listopada 2013 dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 1 / 15
Przeszukiwanie bazy nazw plików $ locate bash-completion Przeszukiwanie bazy nazw plików bez uwzględniania 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
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 uwzględniania 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
Wyświetlanie numerów wierszy, w których występuja szukane słowa $ grep -n 'Linus' * Wyszukiwanie słów w wynikach poleceń $ ls -l grep tex Wyświetlanie kontekstu słów występujacych w plikach $ grep -B 2 Torvalds *.tex $ grep -A 2 Torvalds *.tex $ grep -C 2 Torvalds *.tex Wyświetlanie wierszy, w których nie występuje 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
Metaznaki Symbol grep egrep Znaczenie. + + Dopasowuje dowolny znak * + + Dopasowuje zero lub więcej znaków poprzedzajacych ˆ + + Dopasowuje poczatek wiersza lub ciagu znaków $ + + Dopasowuje koniec wiersza lub ciagu znaków \ + + Cytuje następny znak [] + + Dopasowuje jeden z elementów zbioru \( \) + - Zachowuje wzór w celu wykorzystania w przyszłości dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 5 / 15
Metaznaki Symbol grep egrep Znaczenie \n + - Odtwarza określony wzór { } - + Dopasowuje zakres wysta- pień \{ \} + - Dopasowuje zakres wysta- pień + - + Dopasowuje jeden lub więcej znaków poprzedzajacych? - + Dopasowuje zero lub jeden znaków poprzedzajacych - + Oddziela od siebie możliwości dopasowania ( ) - + Grupuje wyrażenia dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 6 / 15
Przykłady wyrażeń regularnych dla programu grep Wzorzec Działanie kot Ciag znaków kot ˆkot kot na poczatku wiersza kot$ kot na końcu wiersza ˆkot$ kot jako jedyne słowo w wierszu [Kk]ot Kot lub kot k[ioa]t Druga litera to i, o lub a k.t Druga litera to dowolny znak ˆ...$ Dowolny wiersz zawierajacy dokładnie trzy znaki ˆ\. Dowolny wiersz zaczynajacy się od kropki ˆ\.[a-z][a-z] Jak wyzej, z tym że po kropce musza wystapić dwie małe litery dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 7 / 15
Przykłady wyrażeń regularnych dla programu grep Wzorzec Działanie kot. kot, kotara, kotlina i tak dalej "słowo" słowo w cudzysłowach "*słowo"* słowo w cudzysłowach, z jednym cudzysłowem lub bez cudzysłowów [A-Z][A-Z]* Jeden lub więcej znaków będacych duża litera [A-Z]* Zero lub więcej znaków będacych duża litera [A-Z].* Duża litera po której wystepuje zero lub więcej znaków [A-Z][a-z] Duża lub mała litera [A-Z][a-z] Duża lub mała litera [ˆA-Za-z0-9] Dowolny znak nie będacy litera ani cyfra dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 8 / 15
Przykłady wyrażeń regularnych dla programu egrep Wzorzec Działanie [A-Z]+ Jeden lub więcej znaków będacych duża litera kot las dym Jedno ze słów kot, las lub dym 80[2-4]?86 8086, 80286, 80386 lub 80486 80[2-4]?86 Pentium(-II)? 8086, 80286, 80386, 80486, Pentium lub Pentium-II firm(a y) firma lub firmy dr Andrzej Zbrzezny (IMI AJD) Ś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 b c k M G Znaczenie Bloki 512 bajtów (jednostka domyślna) Bajty Kilobajty (kb) Megabajty (MB) 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 Znaczenie Zwykły plik Katalog Miękkie dowiazanie symboliczne Specjalny plik urzadzenia blokowego Specjalny plik urzadzenia znakowego Kolejka FIFO Gniazdo dr Andrzej Zbrzezny (IMI AJD) Środowisko programisty 25 listopada 2013 12 / 15
Wyszukiwanie plików Polecenie find inne kryteria wyszukiwania Kryterium Znaczenie -atime n Ostatni dostęp miał miejsce n dni temu -mtime n Plik został zmodyfikowany n dni temu -newer plik Wyszukiwany plik został zmodyfikowany wcześniej niż podany plik -links n Plik zawiera dokładnie n twardych dowia- zań -perm p Plik ma uprawnienia, gdzie p to liczbowy tryb dostępu -user użytkownik Właścicielem pliku jest użytkownik -group grupa Właścicielem pliku jest grupa -empty Puste pliki dr Andrzej Zbrzezny (IMI AJD) Ś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