Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2808

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

$
0
0
コマンドラインで、いろいろやるときに、ワイルドカードと正規表現が自分の頭の中でごっちゃになるので、まとめておこうと思います。 シェル シェルはワイルドカードを展開します。 なので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個以上繰り返されている まとめ "コマンドで何かする時は正規表現"、でも"シェルでまずはワイルドカードが展開される"と覚えておけば良いと思います。 参考

Viewing all articles
Browse latest Browse all 2808

Trending Articles