Linuxシステム全体または特定のディレクトリで特定の単語またはテキストの文字列を含むすべてのファイルを検索しますか。この記事では、その方法を説明します。ディレクトリを再帰的に調べて、特定のテキスト文字列を含むすべてのファイルを見つけて一覧表示する方法を学習します。
これを解決する簡単な方法は、grepパターン検索ツールを使用することです。これは、Unixライクなシステム上のファイルまたはディレクトリからパターンや単語を検索するための強力で効率的で信頼性が高く最も人気のあるコマンドラインユーティリティです。
また読む :文字クラスとブラケット式に関する11の高度なLinux「Grep」コマンド
以下のコマンドは、「 check_root」というテキストの行を含むすべてのファイルを一覧表示します。 」、~/bin
を再帰的かつ積極的に検索します ディレクトリ。
$ grep -Rw ~/bin/ -e 'check_root'


-R
の場所 オプションはgrepに指示します コマンドラインとオプション-wにある場合にのみ、シンボリックリンクをたどって、各ディレクトリの下にあるすべてのファイルを再帰的に読み取ります。 単語全体を形成する一致を含む行のみを選択するように指示し、-e
検索する文字列(パターン)を指定するために使用されます。
root権限を必要とする特定のディレクトリまたはファイルを検索する場合は、sudoコマンドを使用する必要があります(rootアカウントでシステムを管理している場合を除く)。
$ sudo grep -Rw / -e 'check_root'
大文字と小文字の区別を無視するには、-i
を使用します 示されているオプション:
$ grep -Riw ~/bin/ -e 'check_root'
テキストの文字列が存在する正確な行を知りたい場合は、-n
を含めます。 オプション。
$ grep -Rinw ~/bin/ -e 'check_root'


検索したいディレクトリにいくつかの種類のファイルがあると仮定すると、たとえば、--include
を使用して、拡張子によって検索するファイルの種類を指定することもできます。 オプション。
この例では、grepにすべての.sh
のみを調べるように指示しています。 ファイル。
$ grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'
さらに、次のコマンドを使用して、複数のパターンを検索することができます。
$ grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'


それでおしまい!ファイル内の文字列や単語を見つける他のコマンドライントリックを知っている場合は、私たちと共有するか、このトピックに関する質問をしてください。下のコメントフォームを使用してください。