„?” służy do dopasowania dowolnego pojedynczego znaku. Możesz użyć „?” wielokrotnie za dopasowanie wielu znaków.
Przykład 1:
Załóżmy, że chcesz wyszukać te nazwy plików tekstowych, których nazwy mają 4 znaki i rozszerzenie to .tekst . Możesz zastosować wzór kulek, używając ‘ ? ’ cztery razy, aby wykonać to zadanie.
Znajdź listę wszystkich plików i folderów w bieżącym katalogu.
$ls-ten
Uruchom następujące polecenie, aby wyszukać te pliki, których nazwy mają cztery znaki i są nieznane.
$ ls -l ????.txt
Przykład-2:
Załóżmy, że chcesz przeszukać te pliki dokumentów, których nazwy mają 8 znaków, pierwsze 4 znaki to bla oraz T i rozszerzenie to doktor . Uruchom następujące polecenie ze wzorcem globbingu, aby przeszukać pliki.
$ls -tenstopa????.doc
Przykład-3:
Załóżmy, że wiesz, że nazwa pliku to 'Najlepsza' a rozszerzenie ma 3 znaki, ale nie znam rozszerzenia. Uruchom następujące polecenie, używając „? ’, aby przeszukać wszystkie pliki o nazwie ‘test’ z dowolnym rozszerzeniem o długości trzech znaków.
$ls -tenNajlepsza.???
Gwiazdka – (*)
„*” służy do dopasowania zero lub więcej znaków. Jeśli masz mniej informacji do przeszukania dowolnego pliku lub informacji, możesz użyć „*” w kulisty wzór.
Przykład 1:
Załóżmy, że chcesz przeszukać wszystkie pliki „Pl” rozbudowa. Uruchom następujące polecenie za pomocą „*” zrobić to zadanie.
$ls -ten *.pl
Przykład-2:
Załóżmy, że znasz tylko początkowy znak nazwy pliku, którym jest 'do' . Uruchom następujące polecenie, używając „*”, aby przeszukać wszystkie pliki w bieżącym katalogu, których nazwy zaczynają się od 'do' .
$ls -tendo*.*
Przykład-3:
Możesz zastosować „*” w skrypcie bash do różnych celów bez wyszukiwania plików. Utwórz plik bash o nazwie „sprawdź.sz” z następującym skryptem. Tutaj, kiedy użytkownik wpisze „ y” lub „T” lub „tak” lub „Tak” następnie 'Potwierdzony' wydrukuje i kiedy typ będzie pisał „n” lub „N” lub „nie” lub „Nie” następnie 'Nie potwierdzone' wydrukuje.
#!/kosz/bashwyrzucił – Chcesz potwierdzić?
czytaćodpowiedź
Obudowa $odpowiedź w
[Yy]* ) wyrzucił 'Potwierdzony.';;
[Nos]* ) wyrzucił 'Nie potwierdzone.';;
*) wyrzucił 'Spróbuj ponownie.';;
esac
Uruchom skrypt.
$grzmotnąćcheck.sh
Nawias kwadratowy - ([])
„[]” służy do dopasowania znaku z zakresu. Niektóre z najczęściej używanych deklaracji zakresu są wymienione poniżej.
Wszystkie wielkie litery są zdefiniowane przez zakres jako [:upper:] lub [A-Z] .
Wszystkie małe litery są zdefiniowane przez zakres jako [:lower:] lub [a-z].
Wszystkie cyfry są zdefiniowane przez zakres jako [:digit:] lub [0-9].
Wszystkie wielkie i małe litery są zdefiniowane przez zakres jako [:alpha:] lub [a-zA-z].
Wszystkie wielkie litery, małe litery i cyfry są zdefiniowane przez zakres jako [:alnum:] lub [a-zA-Z0-9]
Przykład 1:
Uruchom następujące polecenie, aby przeszukać wszystkie pliki i foldery, których nazwa zawiera P lub Co lub r lub s .
$ls -ten [p-s]*
Przykład-2:
Uruchom następujące polecenie, aby przeszukać wszystkie pliki i foldery, których nazwa zaczyna się od dowolnej cyfry od 1 do 5.
$ls -ten [1-5]*
Brakuje mu – (^)
Możesz użyć „^” z nawiasem kwadratowym, aby dokładniej zdefiniować wzór globbingu. „^” może być używany wewnątrz lub na zewnątrz nawiasu kwadratowego. „^” jest używane poza nawiasem kwadratowym, aby przeszukać zawartość pliku, która zaczyna się od określonego zakresu znaków. „^” jest używany w nawiasie kwadratowym, aby pokazać całą zawartość pliku poprzez podświetlenie linii zaczynających się od określonego zakresu znaków . Do wyszukiwania określonej zawartości w pliku można używać różnych typów wzorców masek. 'chwyt' Polecenie służy do wyszukiwania treści w bash. Załóżmy, że masz plik tekstowy o nazwie „list.txt” o następującej treści. Przetestuj następujące przykłady dla tego pliku.
jabłko4000
Banan
700
Pomarańczowy
850
Gruszka
9000
Jackdruit
Przykład 1:
Uruchom następujące polecenie, aby wyszukać te wiersze z lista.txt plik, który zaczyna się od P lub Q lub R .
$ grep '^[P-R]' list.txt
Przykład – 2:
Uruchom następujące polecenie, aby podświetlić te linie z lista.txt plik, który zaczyna się od A lub B lub C .
$ grep '[^A-C]' list.txt
Znak wykrzyknika – (!)
Możesz użyć '!' wewnątrz wzorca zakresu. Działa to tak samo, jak użycie symbolu „^” poza wzorcem zakresu. Kilka przykładów użycia '!' znak podano poniżej.
Przykład 1:
Uruchom następujące polecenie, aby wyświetlić te linie z lista.txt plik, który zaczyna się od „P” lub Q lub R .
$ grep [!P-R] list.txt
Przykład – 2:
Uruchom następujące polecenie, aby wyświetlić te linie z lista.txt plik, który zaczyna się od dowolnej cyfry z 4 do 8 .
$ grep [!4-8] list.txt
Znak dolara – ($)
„$” służy do zdefiniowania końcowego znaku. Jeśli wiesz, że chcesz wyszukać informacje na podstawie ostatniego znaku, możesz użyć „$” w kulisty wzór.
Przykład 1:
Uruchom następujące polecenie, aby wyszukać te wiersze z lista.txt plik, który kończy się na 'do' .
$ grep a$ list.txt
Przykład – 2:
Uruchom następujące polecenie, aby wyszukać te wiersze z lista.txt plik, który kończy się numerem pięćdziesiąt .
$ grep 50 $ list.txt
Nawias klamrowy - ({})
„{}” może służyć do dopasowywania nazw plików z więcej niż jednym wzorcem globbingu. Każdy wzór jest oddzielony znakiem ‘,’ w nawiasie klamrowym bez spacji. Kilka przykładów podano poniżej.
Przykład 1:
Uruchom następujące polecenie, aby wyszukać pliki, których nazwy mają długość 5 znaków, a rozszerzenie to 'CII' lub ostatnie dwa znaki plików to 'NS' a rozszerzenie to 'tekst' .
$ ls -l {?????.sh,*st.txt}
Przykład – 2:
Uruchom następujące polecenie, aby usunąć wszystkie pliki, których rozszerzenia są „doc” lub „docx” .
$rm {*.doc,*.docx}
Rura– ( | )
Znak „|” jest również używany do nałożenia więcej niż jednego warunku na wzorze globbingu. Każdy wzór jest oddzielony w poleceniu symbolem „|”.
Przykład 1:
Uruchom następujące polecenie, aby wyszukać te nazwy plików, które zaczynają się od znaku „a” i mają rozszerzenie „bash” lub „sh”.
$lsdo*+(.grzmotnąć|.CII)Przykład – 2:
Utwórz plik bash o nazwie „menu.bash” i dodaj następujący skrypt. Jeśli typ użytkownika 1 lub S wtedy będzie drukować Wyszukiwanie tekstu . Jeśli typ użytkownika 2 lub R wtedy będzie drukować Zastępowanie tekstu . Jeśli typ użytkownika 3 lub D wtedy będzie drukować Usuwanie tekstu . Będzie drukować Spróbuj ponownie dla każdego innego wejścia.
#!/kosz/bashwyrzucił 'Wybierz dowolną opcję z menu:'
czytaćodpowiedź
Obudowa $odpowiedź w
1 |S) wyrzucił „Wyszukiwanie tekstu”;;
2 |r) wyrzucił „Zastępowanie tekstu”;;
3 |D) wyrzucił „Usuwam tekst”;;
*) wyrzucił 'Spróbuj ponownie.';;
esac
Uruchom skrypt.
$grzmotnąćmenu.bash
WNIOSEK
Niektóre z najczęściej używanych wzorców globbingu są wyjaśnione w tym samouczku na bardzo prostych przykładach. Mam nadzieję, że po przećwiczeniu powyższych przykładów koncepcja globbingu będzie dla Ciebie jasna i będziesz mógł ją z powodzeniem zastosować w poleceniach i skryptach basha.
Więcej informacji znajdziesz w tym filmie: