2003 CNS GUIDE
copyright
 

5.11 ワイルドカードとメタキャラクタ

``ワイルドカード''や ``メタキャラクタ''とは任意の文字列を指定するための特殊な文字のことです. ワイルドカードやメタキャラクタを利用することによって,複数のファイルを効率的に操作できます. 次にそれぞれの使用例を示します.

5.11.1 0文字以上の任意の文字列を表すワイルドカード `*'

`*' (アスタリスク) は0文字以上の任意の文字列を表すワイルドカードです. 例えば,`*.tex'はファイル名が `.tex'で終るすべてのファイルを意味します. シェルは`*'を0文字の文字列としても解釈します. そのため,`abc*'と入力すると,`abc'という名前のファイルも操作の対象に含まれます. ただし,先頭に`*'を指定した場合でも,ファイル名が`.'ではじまるファイルは含まれません.

% ls -a <ENTER>
./              .mathmatics     economics.tex   micro.c
../             .statistics     macro.tex       micro.tex
% ls *.tex <ENTER>
economics.tex   macro.tex       micro.tex
% ls m* <ENTER>
macro.tex       micro.c         micro.tex
% rm * <ENTER> ← rmコマンドでファイルを削除する
% ls -a <ENTER>
./              ../             .mathmatics     .statistics
% _

5.11.2 任意の1文字を表すワイルドカード `?'

`?' (クエスチョンマーク) は任意の1文字を表すワイルドカードです. この1文字はアルファベットでも数字でもかまいませんが,`*'と異なり必ず1文字存在していなければ一致しません. 例えば,`m?cro.tex' という指定には,`mcro.tex'は含まれません.

% ls <ENTER>
economics.tex   macro.tex   micro.c   micro.tex   mcro.tex
% ls m?cro.tex <ENTER>
macro.tex       micro.tex
% _

5.11.3 文字候補を指定するメタキャラクタ `[ ]'

`[ ]'は文字候補を指定するメタキャラクタです. `[ ]'の中に文字を列挙すると,その中のものを当てはまる文字の候補として表せます. 例えば,`[Bbq]'は,`B'か`b'か`q'のうちの1文字を表します. `-'を用いて範囲を表せます. `[a-z]'は小文字アルファベット1文字,`[0-9]'は数字1文字を表します. なお,候補の文字列の前に`^'を用いると,`[ ]'の中に列挙されていない文字を表します. 例えば`[^tex]'は,`t'か`e'か`x'以外の文字を表します.

5.11.4 文字列候補を指定するメタキャラクタ `{ }'

`[ ]'の場合は1文字でしたが,`{ }' の中にカンマ(`,') で区切って文字列を列挙すると,その文字列を候補として扱えます. 例えば,`{aux,log}'は,`aux'か `log'のどちらかを表します.

5.11.5 ホームディレクトリを表すメタキャラクタ ` '

`~'は,ホームディレクトリを表します.`~ログイン名'とすると,そのログイン名を持つユーザのホームディレクトリを表しますが,ログイン名を省略すると自分のホームディレクトリを表します.

ワイルドカードやメタキャラクタをファイル名に含めると,ファイルの操作が困難になるのでなるべく使わないようにしましょう. また,同時に複数のファイルを操作することは 便利な反面,操作ミスの影響が大きくなります. 特にファイルの消去などには十分注意してください.