0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ワイルドカードと正規表現の違い

Last updated at Posted at 2025-05-01

お手柔らかに

はじめに

grepとfindの違いが理解できていなかったのでお勉強
その中で、正規表現とワイルドカードという似て非なる存在が現れたので、それらの違いについても整理

grepとfindの違い

結論、ファイルの中身を検索したいのか、ファイルの存在を検索したいのかによって使い分ける

項目 grep find
対象 ファイルの中身(テキスト) ファイルの存在(名前や場所)
使うときの目的 文字列の検索・抽出 ファイルの探索・絞り込み
grep 'error' server.log
→ ログの中から error を含む行を表示
find . -name "*.log"
→ 拡張子が.logのファイルを探す

正規表現とワイルドカードの違い

項目 ワイルドカード 正規表現
誰が解釈するか シェルが解釈する
→ コマンドが実行される前にシェルがワイルドカードを解釈し、その結果をコマンドに渡している(*1)
コマンド本体が解釈する
→ シェルは正規表現のままコマンドに値を渡し、コマンド本体が正規表現を解釈する
使う場面 ファイル名をざっくり指定するとき ファイルの中身や文字列のパターンを細かく抽出したいとき
よく使うコマンド ls, rm, cp, mv, find -name など grep, sed, awk, find -regex など

*1:例えば ls *.txt なら、*.txt を見てシェルはワイルドカードだと判断し、 sample.txt example.txtといった結果を ls に渡す。
つまり ls が受け取る値は *.txt ではなく sample.txt example.txt となる。

まとめ

「誰が解釈するのか」が分かるとワイルドカードと正規表現の違いが見えてくる

0
0
1

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?