全く反対のgrepオプションの組み合わせ

全く反対のgrepオプションの組み合わせ

やった:grep -r -H -L txt ~

そしてgrep -r -l -L txt ~

すべてのファイルがリストされますか? 出力が非常に長いです。

答え1

2 つのコマンドはまったく同じです。どちらもホーム ディレクトリを再帰的に処理し、パターン 'txt' を含まないファイルを一覧表示します。

同じ出力であることを証明するには、次のようにします。

diff <(grep -r -H -L txt ~) <(grep -r -l -L txt ~)

少し詳しく説明すると...

grep -r -H -L

と同じです

grep -r -L

-H(print filenames) は、grep複数のファイルを含むすべての呼び出しに暗黙的に使用されます。-L指定されたパターンに一致しないすべてのファイルをリストするため、これが実行されます。

次...

grep -r -l -L

と同じです

grep -r -L

-lこれは単に、と が競合するオプションであるためであり-L、そのような場合には最後に表示されるフラグが、それ以前の競合するフラグを上書きします。(ドン・クリスティこれを指摘していただきありがとうございます。

つまり、実質的には およびgrep -r -Lとなりますgrep -r -L

関連情報