ファイル検索はファイルを読み取り、特定の識別子を検索します。

ファイル検索はファイルを読み取り、特定の識別子を検索します。

特定の識別子が使用されているファイルを見つけようとします。私はファイル名と識別子を知っているので、次のようにして欲しいものを達成します。

find ./ -name "configuration.php" -print | xargs cat | grep db_userXYZ

唯一の問題は、ファイル名を失ったことです。どこかで使用されているように見えますが、db_userXYZ上記のコマンドはどのファイルで使用されているかわかりません。出力は次のようになります。

$this->db_user = 'db_userXYZ';
$this->db_name = 'db_XYZ';

どんな提案がありますか?

ベストアンサー1

努力する:

find ./ -name "configuration.php" -exec grep db_userXYZ /dev/null {} +

POSIXの定義探す -exec utility_name [argument ...] {} +:

基本式にプラス記号が含まれている場合、基本式は常にtrueと評価され、基本式を評価するパス名はコレクションに集約する必要があります。ユーティリティutil_nameは、各セットパス名セットに対して一度呼び出される必要があります。各呼び出しは、コレクション集約の最後のパス名の後に開始する必要があり、検索ユーティリティーが終了する前と、この基本集計の次のコレクション(存在する場合)の最初のパス名の前に完了する必要がありますが、呼び出しは指定されていません。前、途中、または発生するかどうか他の基本的な評価の後。呼び出しが終了ステータスとしてゼロ以外の値を返す場合、検索ユーティリティはゼロ以外の終了ステータスを返す必要があります。 2 文字の「{}」のみを含む引数は、集約されたパス名のセットで置き換える必要があり、各パス名は集計順序に従って呼び出しユーティリティに別々の引数として渡されます。複数のパス名のセットのサイズは、ユーティリティの実行によってシステムの{ARG_MAX}制限を超えないように制限する必要があります。 2 文字の「{}」のみを含む引数が複数ある場合、動作は指定されません。

あなたのgrepサポート-Hオプション(-H提供されていません)POSIX grep) 次のように使用できます。

find ./ -name "configuration.php" -exec grep -H db_userXYZ {} +

おすすめ記事