web-dev-qa-db-ja.com

Linux Shellスクリプトで正規表現を使用してファイルを検索する方法

シェルスクリプトから、Linuxのすべてのサブディレクトリで、ファイル名にpythonを含むファイルを検索したいとします。regexを使用してすべての場所を検索するにはどうすればよいですか?

58
Mahakaal

すべての.pyファイルを見つけます。

find / -name '*.py'

名前に「python」という単語が含まれるファイルを検索します。

find / -name '*python*'

上記と同じですが、大文字と小文字は区別されません。

find / -iname '*python*'

正規表現の一致、より柔軟。 .pyファイルと、名前に「python」という単語が含まれるファイルの両方を検索します。

find / -regex '.*python.*\|.*\.py'
92
John Kugelman

単純なシェル正規表現で十分な場合は、findを使用できます

find /linux -name "*python*"

そうでなければ、use ack(http://betterthangrep.com/)

0
Malcolm Box