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

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

私はそうしました:grep -r -H -L txt ~

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

すべてのファイルが一覧表示されますか?私が得る出力が非常に長いからです。

答え1

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

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

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

ちょっと分解したら..

grep -r -H -L

同じですか?

grep -r -L

-H(印刷ファイル名)は、grep複数のファイルに関連する呼び出しを意味します。-Lこれは、指定されたパターンと一致しないすべてのファイルを一覧表示するため、これが実行される操作です。

次へ...

grep -r -l -L

同じですか?

grep -r -L

これは単にオプションが競合するためです-l-Lこの場合、最後に発生したフラグが前の衝突フラグをオーバーライドします。 (ありがとうございます。@don_crisstiこれを指摘してください。 )

したがって、実際にはとgrep -r -Lがありますgrep -r -L

関連情報