symbole wieloznaczne to znak, który może być użyty jako substytut dowolnej klasy znaków w wyszukiwaniu, co znacznie zwiększa elastyczność i wydajność wyszukiwania.
symbole wieloznaczne są powszechnie używane w poleceniach powłoki w Linuksie i innych uniksowych systemach operacyjnych. Powłoka to program, który zapewnia tekstowy interfejs użytkownika i którego główną funkcją jest wykonywanie poleceń wpisywanych przez użytkowników i wyświetlanie ich wyników.
symbole wieloznaczne są również używane w wyrażeniach regularnych i językach programowania. Wyrażenia regularne są systemem dopasowywania wzorców, który używa ciągów (tj. sekwencji znaków) skonstruowanych zgodnie z predefiniowanymi regułami składni, aby znaleźć pożądane ciągi w tekście.
termin wildcard lub wild card był pierwotnie używany w grach karcianych do opisania karty, której można przypisać dowolną wartość, jaką chce jej posiadacz. Jednak jego użycie rozprzestrzeniło się tak, że jest obecnie używany do opisania nieznanego lub nieprzewidywalnego czynnika w różnych dziedzinach.
Star Wildcard
trzy typy symboli wieloznacznych są używane w poleceniach Linuksa. Najczęściej stosowanym i najczęściej najbardziej użytecznym jest symbol Star wildcard, który jest taki sam jak gwiazdka (*). Symbol Star wildcard ma najszersze znaczenie spośród wszystkich symboli wieloznacznych, ponieważ może reprezentować zero znaków, wszystkie pojedyncze znaki lub dowolny ciąg znaków.
jako przykład, polecenie Plik dostarcza informacji o dowolnym obiekcie systemu plików (np. pliku, katalogu lub łączu), który jest mu dostarczany jako argument (np. wejście). Ponieważ symbol Star wildcard reprezentuje każdy łańcuch znaków, może być użyty jako argument do zwracania informacji o każdym obiekcie w podanym katalogu. W ten sposób, poniżej wyświetlana będzie informacja o każdym obiekcie w bieżącym katalogu (tzn. katalogu, w którym aktualnie pracuje użytkownik):
file *
jeśli nie ma dopasowań, zwracany jest komunikat o błędzie, np. *: can 't stat’ * ’ (brak takiego pliku lub katalogu).. W przypadku tego przykładu, jedynym sposobem, aby nie było dopasowania, jest, jeśli katalog był pusty.
symbole wieloznaczne mogą być łączone z innymi znakami, aby reprezentować części łańcuchów. Na przykład, aby reprezentować dowolny obiekt systemu plików, który ma .rozszerzenie nazwy pliku jpg,*.jpg będzie używany. Podobnie, a * reprezentowałoby wszystkie obiekty zaczynające się małymi literami (np. małą) literą a.
jako kolejny przykład, poniższy wskazywałby poleceniu ls (używanemu do listowania plików), aby podać nazwy wszystkich plików w bieżącym katalogu, które mają an .html lub A .rozszerzenie txt:
ls *.html *.txt
podobnie, poniższe polecenie mówi poleceniu rm (używanemu do usuwania plików i katalogów), aby usunąć wszystkie pliki w bieżącym katalogu, które mają w nazwie ciąg xxx:
rm *xxx*
znak zapytania
znak zapytania (?) jest używany jako znak wieloznaczny w poleceniach powłoki do reprezentowania dokładnie jednego znaku, który może być dowolnym pojedynczym znakiem. W ten sposób dwa znaki zapytania w kolejności reprezentowałyby dowolne dwa znaki w kolejności, a trzy znaki zapytania w kolejności reprezentowałyby dowolny ciąg składający się z trzech znaków.
w ten sposób, na przykład, następujące zwrócą dane o wszystkich obiektach w bieżącym katalogu, których nazwy, łącznie z dowolnymi rozszerzeniami, mają dokładnie trzy znaki długości:
file ???
a poniżej przedstawiamy dane o wszystkich obiektach, których nazwy mają długość jednego, dwóch lub trzech znaków:
file ? ?? ???
podobnie jak w przypadku symbolu Star wildcard, znak zapytania wildcard może być używany w połączeniu z innymi znakami. Na przykład, poniższe informacje zawierają informacje o wszystkich obiektach w bieżącym katalogu, które zaczynają się na literę a i mają długość pięciu znaków:
file a????
znak zapytania może być również używany w połączeniu z innymi symbolami, gdy jest oddzielony innym znakiem. Na przykład, poniższa lista zwróci listę wszystkich plików w bieżącym katalogu, które mają trzyznakowe rozszerzenie nazwy pliku:
ls *.???
nawiasy kwadratowe wieloznaczne
trzeci typ wieloznacznych znaków w poleceniach powłoki to para nawiasów kwadratowych, które mogą reprezentować dowolny ze znaków zawartych w nawiasach. Tak więc, na przykład, poniższe informacje dostarczą informacji o wszystkich obiektach w bieżącym katalogu, które mają w sobie x, y i / lub z:
file **
poniżej znajduje się lista wszystkich plików, które mają rozszerzenie zaczynające się od x, y lub z:
ls *.*
te same wyniki można osiągnąć jedynie za pomocą symboli wieloznacznych gwiazdek i znaków zapytania. Jednak zdecydowanie bardziej wydajne jest używanie symbolu bracket wildcard.
gdy między dwoma znakami w nawiasach kwadratowych jest używany myślnik, oznacza on zakres obejmujący te dwa znaki. Na przykład, poniższe informacje dostarczą informacji o wszystkich obiektach w bieżącym katalogu, które zaczynają się od dowolnej litery od a do f:
file *
a poniższe informacje dostarczyłyby informacji o każdym obiekcie w bieżącym katalogu, którego nazwa zawiera co najmniej jedną cyfrę:
file **
użycie nawiasów kwadratowych do wskazania zakresu może być połączone z jego użyciem do wskazania listy. Tak więc, na przykład, poniższe informacje dostarczą informacji o wszystkich obiektach systemu plików, których nazwy zaczynają się od dowolnej litery od a do c lub zaczynają się od s lub t:
file *
Podobnie można określić wiele zestawów zakresów. W ten sposób, na przykład, następujące zwróci informacje o wszystkich obiektach, których nazwy zaczynają się od pierwszych trzech lub ostatnich trzech małych liter alfabetu:
file *
czasami przydatne może być posiadanie kolejnych symboli wieloznacznych w nawiasach kwadratowych. Na przykład, poniższa lista wyświetli wszystkie nazwy plików w bieżącym katalogu, które składają się z Jonesa, po którym następuje trzycyfrowa liczba:
ls jones