next up previous contents index
Next: 4.3 補完機能 Up: 4. シェルを利用する Previous: 4.1 シェルの機能


   
4.2 置換機能

  例えば,ファイル名に.logが含まれているファイルをすべて消去するよ うな場合,置換機能を使うと効率的に行える.

シェルにはメタキャラクタ(ワイルドカード)を展開して,入力されたファイル 名を置換する機能がある.メタキャラクタとは任意の文字列や任意の1文字を 指定するための特殊な文字のことである.メタキャラクタを利用することによっ て,複数のファイルを効率的に操作できる.メタキャラクタについて次に説明 する.

4.2.1 0文字以上の任意の文字列を表すメタキャラクタ -*-

 

アスタリスク``*''は0文字以上の任意の文字列を表すメタキャラクタ である.例えば,*.texはファイル名が.texで終わるすべてのファ イルを意味する.その際,シェルは*を0文字の文字列としても解釈す るので,例えばabc*と入力すると,abcという名前のファイルも 操作の対象に含まれる.ただし,*が先頭で用いられた場合には,ファ イル名が``.''で始まるファイルは含まれない.

% ls -a<RET>
./              .mathmatics     economics.tex   micro.c
../             .statistics     macro.tex       micro.tex
% ls *.tex<RET>
economics.tex   macro.tex       micro.tex
% ls m*<RET>
macro.tex       micro.c         micro.tex
% rm *<RET>
% ls -a<RET>
./              ../             .mathmatics     .statistics
% _
メタキャラクタは,多くのファイルを同時に操作する際に便利だが,一方では 操作を間違えてしまった場合の影響も大きいので注意する必要がある.特にファ イルを消去するような場合にはコマンドを実行する前によく確認すること.

4.2.2 任意の1文字を表すメタキャラクタ -?-

 

クエスチョンマーク(?)は任意の1文字を表すメタキャラクタである. この1文字はアルファベットでも数字でもよいが,*と異なり,必ず1文 字存在していなければならない.例えば,m?cro.texという指定には, mcro.texは含まれない.

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

4.2.3 文字候補を指定するメタキャラクタ -[ ]-

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


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

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


ホームディレクトリを表すメタキャラクタ -^〜-

 

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

メタキャラクタを用いたファイル名をつけるとそのファイルの操作が困難にな るので,ファイル名にメタキャラクタを用いないこと.