ワイルドカードの使用方法

ワイルドカードは、検索における任意の文字クラスの代替として使用できる文字であり、検索の柔軟性と効率を大幅に向上させます。

ワイルドカードは、Linuxやその他のUnixライクなオペレーティングシステムのシェルコマンドで一般的に使用されます。 シェルは、テキストのみのユーザーインターフェイスを提供し、その主な機能は、ユーザーが入力したコマンドを実行し、その結果を表示することであるプログ

ワイルドカードは、正規表現やプログラミング言語でも使用されます。 正規表現は、テキスト内の目的の文字列を見つけるために、事前に定義された構文規則に従って構築された文字列(すなわち、文字のシーケンス)を使用

ワイルドカードまたはワイルドカードという用語は、もともとカードゲームで、所有者が望む任意の値を割り当てることができるカードを記述するために使 しかし、その使用法は広がっており、さまざまな分野で未知の要因や予測不可能な要因を記述するために使用されています。

スターワイルドカード

Linuxコマンドでは、三つのタイプのワイルドカードが使用されます。 最も頻繁に使用され、通常最も有用なのは、アスタリスク(*)と同じスターワイルドカードです。 スターワイルドカードは、ゼロ文字、すべての単一文字、または任意の文字列を表すことができるため、ワイルドカードの中で最も広い意味を持ちます。

一例として、fileコマンドは、引数(すなわち、入力)として提供される任意のfilesystemオブジェクト(すなわち、ファイル、ディレクトリ、またはリンク)に関する情報を提 スターワイルドカードはすべての文字列を表すため、指定されたディレクトリ内のすべてのオブジェクトに関する情報を返すfileの引数として使用で したがって、以下は、現在のディレクトリ(つまり、ユーザーが現在作業しているディレクトリ)内のすべてのオブジェクトに関する情報を表示します):

file *

一致するものがない場合は、*:can`t stat’*'(そのようなファイルやディレクトリはありません)などのエラーメッセージが返されます。. この例の場合、一致するものがない唯一の方法は、ディレクトリが空の場合です。

ワイルドカードは、文字列の一部を表すために他の文字と組み合わせることができます。 例えば、aを持つ任意のfilesystemオブジェクトを表す。jpgファイル名の拡張子、*。jpgが使用されます。 同様に、*は小文字(つまり、小さい)文字aで始まるすべてのオブジェクトを表します。

別の例として、次のlsコマンド(ファイルのリストに使用されます)に、現在htmlまたはa.txt拡張子:

ls *.html *.txt

同様に、以下はrmコマンド(ファイルとディレクトリを削除するために使用されます)に、名前にxxxという文字列を持つ現在のディレクトリ内のすべ:

rm *xxx*

疑問符ワイルドカード

疑問符(?)は、シェルコマンドのワイルドカード文字として使用され、任意の単一文字にすることができます。 したがって、連続した2つの疑問符は連続した任意の2つの文字を表し、連続した3つの疑問符は3つの文字からなる任意の文字列を表します。

したがって、たとえば、次の例では、拡張子を含む名前が正確に3文字の現在のディレクトリ内のすべてのオブジェクトのデータが返されます:

file ???

そして、以下は、名前が1、2、3文字の長さのすべてのオブジェクトに関するデータを提供します:

file ? ?? ???

スターワイルドカードの場合と同様に、疑問符ワイルドカードは他の文字と組み合わせて使用できます。 たとえば、次の例では、現在のディレクトリ内の文字aで始まり、長さが5文字のすべてのオブジェクトに関する情報を提供します:

file a????

疑問符のワイルドカードは、他の文字で区切られている場合に、他のワイルドカードと組み合わせて使用することもできます。 たとえば、次の例では、現在のディレクトリ内の3文字のファイル名拡張子を持つすべてのファイルのリストが返されます:

ls *.???

角括弧ワイルドカード

シェルコマンドの第三の種類のワイルドカードは、角括弧のペアであり、角括弧で囲まれた任意の文字を表すことができます。 したがって、たとえば、次のように、現在のディレクトリ内のx、y、および/またはzを持つすべてのオブジェクトに関する情報を提供します:

file **

以下は、x、y、またはzで始まる拡張子を持つすべてのファイルを一覧表示します:

ls *.*

同じ結果は、単に星と疑問符のワイルドカードを使用することによって達成することができます。 ただし、ブラケットワイルドカードを使用する方が明らかに効率的です。

角括弧ワイルドカード内の二つの文字の間にハイフンを使用すると、これら二つの文字を含む範囲を示します。 たとえば、次の例では、aからfまでの任意の文字で始まる現在のディレクトリ内のすべてのオブジェクトに関する情報を提供します:

file *

そして、以下は、名前に少なくとも一つの数字が含まれている現在のディレクトリ内のすべてのオブジェク:

file **

範囲を示すために角括弧を使用することは、リストを示すために使用することと組み合わせることができます。 したがって、たとえば、以下は、名前がaからcまでの任意の文字で始まるか、sまたはtで始まるすべてのfilesystemオブジェクトに関する情報を提供します:

file *

同様に、複数の範囲セットを指定することもできます。 したがって、たとえば、次の例では、名前がアルファベットの最初の3文字または最後の3文字の小文字で始まるすべてのオブジェクトに関する情報を:

file *

場合によっては、角括弧ワイルドカードの連続を持つと便利な場合があります。 たとえば、次の例では、jonesの後に3桁の数字が続く、現在のディレクトリ内のすべてのファイル名が表示されます:

ls jones



+