ファイル名の正規表現

正規表現とは

シェルのコマンドラインで、 lsである特定の種類のファイルだけ表示したい時や、 viその他のコマンドで複数のファイルを指定する時に 次のようなメタキャラクターが使用できる。

*
0文字以上の任意の文字列
0文字以上なので、文字が無くてもマッチする。
たとえばa*a, aa, abcde, a123 などとマッチする。
?
任意の1文字
たとえば ???aaa, abc, 123 などとマッチする。
[...]
[]の中の1文字

たとえば [abc]eeaee, bee, cee とマッチする。
ただし、アルファベット、数字の続いた部分は次のようにも表現できる
[a-e]
[abcde] と同じ
[1-5]
[12345] と同じ
[A-Za-z]
大文字、小文字を含んだアルファベット全部
{str1,str2,...}
str1,str2...中の文字列の一つ
たとえば {abc,def}ggabcgg, defgg とマッチする。

上のメタキャラクターは組み合わせて使用できる。

# ls
a.out test1.c test2.c
tmp1.c tmp2.c tmp3.c
# ls *.c
test1.c test2.c tmp1.c tmp2.c tmp3.c
# ls ????.c
tmp1.c tmp2.c tmp3.c
# ls tmp[23].*
tmp2.c tmp3.c
# ls *[23].*
test2.c tmp2.c tmp3.c
# ls *[A-Za-z].???
a.out
# ls {a,tmp}.*
a.out tmp1.c tmp2.vp
# echo *       <- lsの代わり
a.out test1.c test2.c tmp1.c tmp2.c tmp3.c
#

参考


Prev | Next
Home | Contents
abe@injapan.net