LoginSignup
0
0

More than 1 year has passed since last update.

コマンドでのワイルドカード、正規表現

Posted at

コマンドラインで、いろいろやるときに、ワイルドカードと正規表現が自分の頭の中でごっちゃになるので、まとめておこうと思います。

シェル

シェルはワイルドカードを展開します。
なのでecho *とすると、カレントディレクトリ以下のファイルが(ディレクトリも)表示されます。

ほかにも、シェルで展開されるものがあり、チルダやブレースも展開されます。

[MacbookProKun]:/ % echo *
Applications Library System Users Volumes bin cores dev etc home opt private sbin tmp usr var
[MacbookProKun]:/ % echo ~
/Users/ユーザー名
[MacbookProKun]:/ % echo {1..10}
1 2 3 4 5 6 7 8 9 10

ここで重要なのが、ワイルドカードに関してはコマンドに渡される前に展開されますが、シェルは正規表現を解釈できないということです。

コマンド

grepでは、ワイルドカードではなく、正規表現になります。デフォルトでは基本正規表現(オプションは-G)、また拡張正規表現(オプションは-E)、Perlの正規表現(オプションは-P)などがあります。

[MacbookProKun]:/ % echo "a\nab\nabb" | grep 'ab*'
a
ab
abb

bが0個以上繰り返されている

まとめ

"コマンドで何かする時は正規表現"、でも"シェルでまずはワイルドカードが展開される"と覚えておけば良いと思います。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0