以下のようにワイルドカードでgrepを使用する場合
grep -in github */*
各ディレクトリには、grep
次のような多くのメッセージが表示されます。
grep: dir1/dir2: Is a directory
これらのメッセージを表示したくない場合はどうすればよいですか?
驚くべきことに、そのフラグを使用すると--exclude-dir
機能しません。
私はMacOSで使用していますgrep (BSD grep) 2.5.1-FreeBSD
。
答え1
-d skip
grep スキップディレクトリを作成します。
grep -in -d github スキップ/
~によるとこのMaxOSのマニュアルページこのオプションはMacOS grepで動作します。これがMacOS grepで動作しないことが判明した場合は、インストールできますHomebrew MacOSパッケージマネージャその後、Homebrewを使用してインストールします。grepのGNUバージョンこれは、GNU grepがそれをサポートしているためです-d skip
(この場合、GNU grepを含むディレクトリをPATH
環境変数の最初のディレクトリに設定する必要があります)。
答え2
find
使用探すgrep
次にファイルのマージグラム/重量/pファイル内で:
find . -mindepth 2 -maxdepth 2 -type f -exec grep -in github {} \;
各ツールの名前には、その目的に関する重要な手がかりがあります:-).