ワイルドカード:柔軟なファイル操作を可能にする特殊文字
コンピュータにおいて、ワイルドカードはファイル
検索や操作において、特定のパターンに一致する複数のファイルや文字列を一度に指定するための特殊文字です。
カードゲームのワイルドカードに由来する名称で、任意の文字や文字列を表すことで、複雑な指定を簡略化し、作業効率を向上させる役割を果たします。
様々なシステムにおけるワイルドカード
ワイルドカードの具体的な機能や使用方法、そして使える特殊文字は、システムによって異なります。代表的な例として、
UNIX系OS、
MS-DOS/Windows、そしてデータベース言語であるSQLでの使用例を見てみましょう。
UNIX系OS (例: Linux, macOS):
UNIX系のシェルでは、`?` (
疑問符) と `
` (アスタリスク) がワイルドカードとして使用されます。`?` は任意の1文字に、`` は0文字以上の任意の文字列にマッチします。
例えば、`sales-2018
.txt` というパターンは、`sales-2018` で始まる、`.txt` で終わる全てのファイルにマッチします。 `sales-201801.txt` と `sales-201802.txt` というファイルが存在するならば、`vi sales-2018.txt` というコマンドを実行すると、`vi sales-201801.txt sales-201802.txt` と展開され、viエディタがこれらのファイルを開きます。
MS-DOS/Windows:
MS-DOSやWindowsのコマンドプロンプトでは、`
` と `?` もワイルドカードとして使用されますが、UNIX系OSと挙動が異なります。`` はファイル名の一部に存在する場合、その位置から拡張子までの部分を全てマッチしたものとして扱われます。例えば、`FOO
BAR` は `FOO` と同じ意味になります。また、`REN
.TXT .BAK` のようなコマンドでは、全ての`.TXT` ファイルを`.BAK` ファイルに一括で名前変更するといった、直感的な(DWIM的な)動作をします。
SQL:
SQLの`WHERE`句で用いられる`LIKE`述語においては、`%`が0文字以上の任意の文字列に、`_`が任意の1文字にマッチします。例えば、`WHERE name LIKE 'John%'` は、`name`列が'John'で始まる全ての行を返します。
ワイルドカードと正規表現
ワイルドカードは、正規表現と似た機能を持ちますが、明確な違いがあります。正規表現はより複雑で高度なパターンマッチングを可能とする強力なツールです。一方、ワイルドカードは簡潔で直感的な記述で、基本的なパターンマッチングを行うのに適しています。ワイルドカードは正規表現の簡略版と考えることもできますが、正規表現で表現できる全てのパターンをワイルドカードで表現できるわけではありません。両者の機能を理解し、状況に応じて適切なツールを選択することが重要です。
まとめ
ワイルドカードは、ファイル操作やデータ
検索を効率化する便利な機能です。しかし、システムによってその挙動が異なるため、使用するシステムの仕様を理解した上で適切に利用することが重要です。特に、
UNIX系OSと
MS-DOS/Windowsでは、ワイルドカードの解釈が大きく異なる点に注意が必要です。また、正規表現との違いも理解することで、より効果的にワイルドカードを活用できるでしょう。