Tutorial globbingowy bash

Tutorial globbingowy bash
Bash nie obsługuje natywnych wyrażeń regularnych, takich jak niektóre inne standardowe języki programowania. Funkcja powłoki bash, która jest używana do dopasowywania lub rozszerzania określonych rodzajów wzorów, nazywa się Globbing. Globbing służy głównie do dopasowania nazw plików lub wyszukiwania treści w pliku. Globbing używa znaków wieloznacznych do tworzenia wzoru. Najczęstsze znaki wieloznaczne, które są używane do tworzenia wzorów kulinarnych, opisano poniżej.

Znak zapytania - (?)

'?' służy do dopasowania dowolnego pojedynczego znaku. Możesz użyć '?' dla wielu razy do dopasowania wielu znaków.

Przykład 1:

Załóżmy, że chcesz przeszukać te tekstowe nazwy plików, których nazwy mają 4 znaki, a rozszerzenie .tekst. Możesz zastosować wzór globbingu za pomocą '?„Czterokrotnie wykonać to zadanie.

Znajdź listę wszystkich plików i folderu bieżącego katalogu.

$ ls -l

Uruchom następujące polecenie Wyszukaj pliki, których nazwy są cztery znaki długie i nieznane.

$ ls -l ????.tekst

Przykład-2:

Załóżmy, że chcesz wyszukać te pliki dokumentów, których nazwy mają 8 znaków, pierwsze 4 znaki są bla I T i rozszerzenie jest Doc. Uruchom następujące polecenie z wzorem Globbing, aby wyszukać pliki.

$ ls -l stopa????.Doc

Przykład-3:

Załóżmy, że wiesz, że nazwa pliku jest 'to, co najlepsze' a rozszerzenie ma 3 znaki, ale nie znam rozszerzenia. Uruchom następujące polecenie za pomocą '?„Aby wyszukać wszystkie pliki z nazwą„ test ”o długości trzech znaków.

$ ls -l best.???

Gwiazdka - (*)

„*” służy do dopasowania zero lub więcej znaków. Jeśli masz mniej informacji do wyszukiwania dowolnego pliku lub informacji, możesz użyć „*” W wzorze globbingu.

Przykład 1:

Załóżmy, że chcesz wyszukać wszystkie pliki „PL” rozszerzenie. Uruchom następujące polecenie za pomocą „*” wykonać to zadanie.

$ ls -l *.pl

Przykład-2:

Załóżmy, że znasz początkowy charakter nazwy pliku 'A'. Uruchom następujące polecenie za pomocą „*” do wyszukiwania wszystkich plików bieżącego katalogu, których nazwy są uruchamiane 'A'.

$ ls -l a*.*

Przykład-3:

Możesz zastosować skrypt „*” do różnych celów bez wyszukiwania plików. Utwórz plik bash o nazwie 'sprawdzać.cii' z następującym skryptem. Tutaj, gdy użytkownik wpisujey 'lub „y” lub „tak” lub „tak” Następnie 'potwierdzony' Wydrukuje, a kiedy typ wpisuje „n” lub „n” lub „nie” lub „nie” Następnie 'Nie potwierdzone' wydrukuje.

#!/bin/bash
echo "Czy chcesz potwierdzić?"
Przeczytaj odpowiedź
sprawa $ odpowiedź w
[Yy]*) echo "potwierdził.";;
[Nn]*) echo "nie potwierdzono.";;
*) Echo „Spróbuj ponownie.";;
esac

Uruchom skrypt.

$ Bash Check.cii

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 alfabety są zdefiniowane przez zakres jako, [: górny:] lub [a-Z] .

Wszystkie małe alfabety są zdefiniowane przez zakres jako, [: niższy:] lub [a-z].

Wszystkie cyfry numeryczne są zdefiniowane przez zakres jako, [: cyfr:] lub [0-9].

Wszystkie wielkie i niższe alfabety są zdefiniowane według zakresu jako, [: alfa:] lub [a-za-z].

Wszystkie wielkie alfabety, małe alfabet i cyfry są zdefiniowane według zakresu jako, [: alnum:] lub [A-ZA-Z0-9]

Przykład 1:

Uruchom następujące polecenie, aby wyszukać wszystkie pliki i foldery, których nazwa zawiera P Lub Q Lub R Lub S.

$ ls -l [p -s]*

Przykład-2:

Uruchom następujące polecenie, aby wyszukać wszystkie pliki i foldery, których nazwa zaczyna się od dowolnej cyfry od 1 do 5.

$ ls -l [1-5]*

CareT - (^)

Możesz użyć „^” z kwadratowym nawiasem, aby bardziej szczegółowo zdefiniować wzór globania. „^” może być używane wewnątrz lub na zewnątrz kwadratowego wspornika. „^” jest używany poza kwadratowym nawiasem do przeszukiwania zawartości pliku, który zaczyna się od danego zakresu znaków. „^” jest używany wewnątrz kwadratowego wspornika, aby pokazać całą zawartość pliku, podkreślając linie zaczynające się od danego zakresu znaków . Możesz użyć różnych rodzajów wzorców globbingowych do wyszukiwania określonej treści z pliku. „Grep” Polecenie służy do wyszukiwania treści w Bash. Załóżmy, że masz nazwany plik tekstowy 'lista.tekst' z następującą treścią. Przetestuj następujące przykłady tego pliku.

Jabłko
4000
Banan
700
Pomarańczowy
850
Gruszka
9000
Jackdruit

Przykład 1:

Uruchom następujące polecenie, aby przeszukać te wiersze z lista.tekst Plik, który zaczyna się od P lub Q lub R.

Lista $ grep '^[p-r]'.tekst

Przykład - 2:

Uruchom następujące polecenie, aby podkreślić te wiersze z lista.tekst Plik, który zaczyna się od A lub B lub C.

$ grep '[^a-c]'.tekst

Znak wykrzyknikowy - (!)

Możesz użyć '!' wewnątrz wzoru zasięgu. Działa tak samo jak użycie symbolu „^” poza wzorem zasięgu. Niektóre przykłady używania '!' Znak podano poniżej.

Przykład 1:

Uruchom następujące polecenie, aby pokazać te wiersze z lista.tekst Plik, który zaczyna się od „P” lub q lub r.

$ grep [!P-R] lista.tekst

Przykład - 2:

Uruchom następujące polecenie, aby pokazać te wiersze z lista.tekst plik, który zaczyna się od dowolnej cyfry z 4 do 8.

$ grep [!4-8] lista.tekst

Znak dolara - ($)

„$” służy do zdefiniowania znaku końcowego. Jeśli wiesz, że chcesz wyszukiwać informacje na podstawie ostatniego znaku, możesz użyć „$” W wzorze globbingu.

Przykład 1:

Uruchom następujące polecenie, aby przeszukać te wiersze z lista.tekst plik kończący się na 'A'.

$ grep a $ lista.tekst

Przykład - 2:

Uruchom następujące polecenie, aby przeszukać te wiersze z lista.tekst Złóż ten koniec liczbą 50.

$ grep 50 $ lista.tekst

Nawias klamrowy - ()

„” może być używane do dopasowania nazw plików z więcej niż jednym wzorami globbingowymi. Każdy wzór jest oddzielony przez „w kręconym nawiasach bez miejsca. Niektóre przykłady podano poniżej.

Przykład 1:

Uruchom następujące polecenie, aby przeszukać te pliki, których nazwy mają 5 znaków, a rozszerzenie jest 'cii' lub ostatnie dwa znaki plików to „St” A rozszerzenie jest 'tekst'.

$ ls -l ?????.sh,*st.tekst

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 zastosowania więcej niż jednego warunku na wzorze globbingu. Każdy wzór jest oddzielony przez „|” symbol w poleceniu.

Przykład 1:

Uruchom następujące polecenie, aby przeszukać nazwy plików, które zaczynają się od postaci „A” i ma rozszerzenie „Bash” lub „SH”.

$ ls a*+(.Bash |.cii)

Przykład - 2:

Utwórz plik bash o nazwie 'menu.grzmotnąć' i dodaj następujący skrypt. Jeśli typ użytkownika 1 lub s wtedy wydrukuje „Wyszukiwanie tekstu”. Jeśli typ użytkownika 2 lub r Wtedy wydrukuje „Zastąpienie tekstu". Jeśli typ użytkownika 3 lub d wtedy wydrukuje „Usuwanie tekstu". Będzie wydrukować "Spróbuj ponownie" dla każdego innego wejścia.

#!/bin/bash
echo „Wybierz dowolną opcję z menu:”
Przeczytaj odpowiedź
sprawa $ odpowiedź w
1 | S) echo „wyszukiwanie tekstu” ;;
2 | R) echo „Zastąpienie tekstu” ;;
3 | D) echo „Usuwanie tekstu” ;;
*) Echo „Spróbuj ponownie.";;
esac

Uruchom skrypt.

Menu $ Bash.grzmotnąć

WNIOSEK

Niektóre z najczęściej używanych wzorców globbingowych są wyjaśnione w tym samouczku przy użyciu bardzo prostych przykładów. Mam nadzieję, że po wyćwiczeniu powyższych przykładów koncepcja globbingu będzie dla ciebie jasna i będziesz mógł z powodzeniem zastosować go w poleceniach i skryptach Bash.

Aby uzyskać więcej informacji, sprawdź ten film: