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