UNIX入門:4. 正規表現(RegularExpression)
ディレクトリ「My_Programs」に移動し,コマンド echo * を実行してみよう。
% cd ~/My_Programs % echo * hello.c hello.out hello.pl hello.sh %
コマンド echo * が,カレント・ディレクトリ (My_Programs) のファイル一覧を表示することが分かります。実は,シェルは,カレント・ディレクトリ内のファイル一覧を読み込み,標準入力された文字 * と照合し,合致したファイル名を標準出力へ出力しています。このような文字の検索とその置換のための表現を「正規表現」(Regular Expression) といいます。
(i) a*:a から始まる文字列すべて。
- 例4.1:
hから始まるファイル% cp hello.sh sample.sh % echo * hello.c hello.out hello.pl hello.sh sample.sh % echo h* hello.c hello.out hello.pl hello.sh
(ii) *a:a で終わる文字列すべて。
- 例4.2
% echo *h hello.sh sample.sh
- 例4.3
pを間にもつファイル% echo *p* hello.pl sample.sh
(iii) ?:その位置に任意の文字で検索。
- 例4.4
% echo he?lo.pl hello.pl
- 例4.5
% echo hello??? hello.pl hello.sh
(iv) [abc], [a-z], [A-Z], [0-9],...:その位置に [ ] 内の文字で検索。
- 例4.6:
a-nで終わるファイル% echo *[a-n] hello.c hello.pl hello.sh sample.sh
(iv) [^abc], [^a-z], [^A-Z], [^0-9],...:その位置に ^以降以外の文字を検索。
- 例4.7:
h以外で始まるファイル% echo [^h]* sample.sh