は一致しないファイルの内容を検索し、-l
は一致するファイルの内容を検索します。
したがって、2番目の「grepping」で-l
フラグを指定する必要があります。
さらに、最初のgrep
の出力をコマンドライン引数として2番目に送信する必要があります。これは、標準入力から項目を読み取るためのツールであるxargs
を使用して実行できます。ファイル名を直接パイプすると、2番目のgrepがファイル names 内の文字列authenticate
を検索します。
grep -r --color -L "class public interface" * | xargs grep -l "authenticate"`
xargs
はデフォルトで入力を空白に分割するため、ファイル名がある場合はスペースがある場合(またはそれより悪い場合)、代わりにgrep -Z
とxargs -0
を使用して、ファイル名をNULバイトで区切る必要があります。( GNU grepでは、つまり、他のものは異なる場合があります。たとえば、FreeBSDgrepには代わりに--null
があります。)
コメント