2. Wyszukiwanie
W celu wyszukania w systemie Linux zbioru,
pliku, fragmenty tekstu używane są dwa
polecenia:
• find –służący do wyszukiwania plików i
folderów spełniających zadane kryteria.
• grep – przeszukujący zawartość plików,
wyników działania polecenia w poszukiwaniu
określonych kryteriów
3. Wyszukiwanie
find - składnia
Typowa składnia polecenia to:
find ścieżka wyrażenia/opcje
Przykład 1:
find /home/uczeń –name spis.txt
polecenie ścieżka wyrażenia /opcje
Polecenie wyszuka pliku o nazwie spis.txt w
katalogu domowym ucznia.
4. Wyszukiwanie
find - rodzaje wyrażeń
WYRAŻENIE OPIS
name wyszukuje plik o określonej nazwie
wyszukuje pliki, których typ jest określony jako:
d katalog
f plik normalny
type b plik blokowy
c plik znakowy
l dowiązanie symboliczne
links wyszukuje pliki z liczbą N dowiązań do plików
size wyszukuje pliki, które mają wielkość N
user wyszukuje pliki, które należą do użytkownika
perm wyszukuje pliki, które mają prawa dostępu określone jako tryb
atime wyszukuje pliki, które były otwierane w N dniach
mtime wyszukuje pliki które zostały zmodyfikowane w N dniach
5. Wyszukiwanie
find - rodzaje wyrażeń
W przypadku zwrócenia przez funkcję find
wyniku możemy wykorzystując następujące
opcje wykonać:
- print -> przekazuje na standardowe wyjście nazwę
odnalezionego pliku oraz jego pełną ścieżkę dostępu
- exec polecenie {}; -> uruchamia polecenie dla
odnalezionego pliku
- ok. polecenie {} ; -> potwierdza uruchomienie
polecenia dla odnalezionego pliku
6. Wyszukiwanie
Przykłady użycia:
• find . -name "a*" -type f
wszystkie pliki zaczynające się na a
• find / -name „szukany_plik" -ls
przeglądanie całego drzewa katalogów w poszukiwaniu pliku szukany plik i
wypisanie informacji o nim.
• find / -name "myfile" -type f 2>/dev/null
ignorowanie błędów
• find . -maxdepth 1 -size 0 -name "*.txt" –delete
usunięcie pustych plików w bieżącym katalogu
• find . -type d -exec chmod 700 {} ;
• zmiana praw dostępu wszystkich podkatalogów w bieżącej lokalizacji
• find ~ -name "*.txt" -exec grep -q „cokolwiek" {} ; -p
wypisuje pliki tekstowe zawierające w treści „cokolwiek”
7. Wyszukiwanie
polecenie grep
grep (globally look for a regular expression end print)
Co w wolnym tłumaczeniu znaczy: wyszukaj w pliku napisów
spełniających wyrażenie regularne i wyświetl je.
Polecenie służy do znalezienia każdego wystąpienia
słowa – ciągu znaków, frazy – w pliku utworzonym w
systemie Linux.
Ogólny wzór polecenia grep można przedstawić
następująco:
grep [ opcja ] [ -e ] [ wzór ] [nazwa pliku]
8. Wyszukiwanie
opcje polecenia grep
-b wyświetla odnalezione miejsca
-c wyświetla liczbę odnalezionych wyrażeń
-h nie wypisuje nazwy plików przed każdym odnalezionym miejscem
-i ignoruje różnice w wielkości liter
-l wyświetla tylko nazwy plików w których odnaleziony został wzór
-n wyświetla numer każdego wiersza, w którym został odnaleziony wzór
-s brak wyświetlania jakichkolwiek komunikatów
-v wyświetla tylko te wiersze, które nie zawierają wzoru
-w wyświetla tylko te wiersz, w których wzór jest całym wyrazem
9. Wyszukiwanie
zastosowanie polecenia grep
przykład 1
grep -n ‘^admin:’ /etc/passwd
Polecenie grep wyświetla na ekranie wiersz z pliku /etc/passwd który definiuje użytkownika admin” i
dodatkowo poprzedza wiersz jego numerem w pliku /etc/passwd
$ ls / | grep „^r.*”
przykład 2
grep WK dataplik
Na ekranie wyświetlają się linie zawierające wyrażenie regularne WK znajdujące się w pliku dataplik
przykład 3
grep ‘^C’ dataplik
Na ekranie wyświetlają się wszystkie linie zaczynające się od „C”, symbol ^ pokazuje ,że szukamy wierszy
które zaczynają się od znaku (czy wyrażenia regularnego) znajdującego się zanim . W tym przypadku jest
to litera C.
Przykład 4
grep ‘4$’ dataplik
Na ekranie wyświetlają się linie kończące się cyfrą „4”. Symbol $ pokazuje, że poszukiwania znaków
rozpoczynamy od końca wiersza. W tym wypadku znakiem tym jest cyfra 4.
10. Wyszukiwanie
zastosowanie polecenia grep
Przykład 5
grep ‘4. ’ dataplik
Na ekranie wyświetlają się linie zdefiniowane przez wyrażenie
regularne zawierające zdefiniowane przez ‘4. ‘ czyli wyszukujemy wierszy które
zawierają cyfre cztery po której następuje kropka a następnie spacja.
Przykład 6
grep ‘3’ dataplik
Na ekranie wyświetlają się linie zawierające cyfrę „3” obramowaną przez 3
Przykład 7
grep ‘^[KW]’ dataplik
Na ekranie wyświetlają się wszystkie linie zaczynające się o litery „K” albo „W”.
Przykład 8
grep ‘[A-Z][A-] [A-Z][A-Z]
Na ekranie wyświetlają się linie zawierające dwie duże litery następujące natychmiast po
sobie po których występuje spacja i znów dwie duże litery następujące natychmiast po
sobie.