IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

WSLで始めるUbuntu

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第13回 ワイルドカードについて知ろう (宮崎悟) 2019年10月

前回は、echoやプロンプトなどで使用できるエスケープシーケンスについて説明しました。今回は、コマンドラインで使用するワイルドカードについて説明します。

ワイルドカード

今までもコマンドを使用する場合には、コマンド・オプションとともにファイル名を使用したと思います。ワイルドカードは特殊な文字列を使用します。これは正規表現に似ていますが、非なるものです。

「*」任意の0以上の文字列

」は任意の0以上の文字列にマッチするワイルドカード文字です。正規表現で言うところの「.\」に相当します。この文字は以下のように使用します。

ワイルドカード文字列 適用範囲
* カレントディレクトリ以下のすべてのファイル
*.txt カレントディレクトリ以下の、末尾が 「.txt 」のファイル
abc* カレントディレクトリ以下の、先頭が「abc」のファイル
*def*.txt カレントディレクトリ以下の、ファイル名中に「def」が含まれ、末尾が「.txt」のファイル
*/*.txt カレントディレクトリ以下のすべてのディレクトリ以下の、末尾が「.txt」のファイル
/etc/*.conf /etc ディレクトリ以下の、末尾が「.conf」のファイル
「?」 任意の一文字の文字列

「?」は任意の1文字にマッチするワイルドカード文字です。正規表現で言うところの「.」に相当します。この文字は以下のように使用します。

ワイルドカード文字列 適用範囲
? カレントディレクトリ以下の1文字のファイル
??? カレントディレクトリ以下の3文字のファイル
a???bb カレントディレクトリ以下の、aで始まり任意の3文字と末尾がbbのファイル
/etc/???.conf /etcディレクトリ以下の、任意の3文字で始まり、末尾が「.conf」のファイル
「[文字列]」 で区切った1文字以上の文字列

「[文字列]」は、「[]」で区切った1文字以上の文字列にマッチするワイルドカード表現です。正規表現の「[]」と同じ機能で、「-」などの文字範囲も使用可能です。

ワイルドカード文字列 適用範囲
[a]* カレントディレクトリ以下の「a」で始まるファイル
[adz]* カレントディレクトリ以下の「a」・「d」・「z」で始まるファイル
[a-z]* カレントディレクトリ以下の「a」~「z」で始まるファイル
/etc/rc3.d/S[0-9][0-9]* /etc/rc3.dディレクトリ以下の「S」+「0」~「9」2文字で始まるファイル
「[^文字列]」で区切った1文字以上の文字列

「[^文字列]」は「[文字列]」とは逆に、「[^]」で囲まれた1文字以上の文字列にマッチしないワイルドカード表現です。POSIX正規表現でも同じことが可能です。

ワイルドカード文字列 適用範囲
[^a]* カレントディレクトリ以下の先頭が「a」以外で始まるファイル
[^0-9]*.txt カレントディレクトリ以下の、先頭が数字以外で始まり末尾が「.txt」のファイル
.[^.]* 「.」「..」以外の「.」で始まるファイル
/usr/lib/[^A-Zl]* /usr/lib ディレクトリ以下の先頭が大文字英字もしくは「l」以外で始まるファイル
「{XXX,YYY}」のように複数の文字列

「{XXX,YYY}」は、「{}」でくくられた文字列内の「,」で区切られた文字「XXX」もしくは「YYY」にマッチします。「,」で区切る文字列は2以上の任意の数が可能です。この表現は、POSIX拡張正規表現でも可能です。

ワイルドカード文字列 適用範囲
{XXX,YYY,ZZZ}.txt カレントディレクトリ以下の「XXX.txt」「YYY.txt」「ZZZ.txt」
/usr/bin/{ls,ps}* /usr/bin ディレクトリ以下の、「ls」か「ps」で始まるファイル
「\」エスケープ文字

「\」(エスケープ文字)は、上記のワイルドカード文字をそのまま表示するための文字です。「\」とすることで、「\」そのものにマッチします。

ワイルドカード文字列 適用範囲
[\^abc].txt カレントディレクトリ以下の先頭が「^」「a」「b」「c」で始まるファイル
{abc,def}\{ghi\}.txt カレントディレクトリ以下の「abc{ghi}.txt」「def{ghi}.txt」
「~」 ユーザホームディレクトリ指定

」単体では、ユーザのホームディレクトリを指定する文字列です。「ユーザ名」では、ユーザ名で指定したユーザのホームディレクトを指定します。

終わりに

今回はワイルドカードについて説明しました。ワイルドカードは複数の表現を組み合わせて複雑なファイル指定も可能です。いろいろ試してみて下さい。次回は、キーバインドについて説明しようと思います。次回をお楽しみに。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes