• 締切済み

grep 正規表現の扱い方 特定のファイル郡のみを指定するには?

ディレクトリのファイルをgrepを使った正規表現で指定したいのですが、 /hoge/temp[001-999].php のように、hogeディレクトリにあるphpファイル全てを含め、なおかつ、 /hoge/foo/temp[001-999].php のように、hoge/fooディレクトリにあるphpファイルを全て含めない正規表現の書き方を教えてほしいです。 正規表現にあまり詳しくなく、思いつくものといっても「hoge/.*.php」くらいで、当たり前ですが双方のディレクトリが含まれてしまいます・・・。 もう一つ、質問です。 /hoge/ ディレクトリにあるファイル全てを含め、なおかつ /hoge/foo/ ディレクトリにあるファイルは全て含めない という指定の仕方も教えてほしいです。 分かる方がいましたら、お手数ですがぜひ教えてください。よろしくお願いします<(_ _)>

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

一般論だと, 「正規表現で『~を含まない』と指定するのは面倒」(要するに可能性を全列挙するしかないから) で終わり. 「当該ディレクトリ直下」まで手を抜いていいなら [^/]* とするのが簡単.

JIITE
質問者

補足

自己解決しました。 hogeディレクトリに存在するphpファイルを全て指定 hoge/[:alnum:]*.php hogeディレクトリに存在するファイルを全て指定 hoge/[:alnum:]* 回答ありがとうございました。