私はこの2つのgrep正規表現を持っています
grep -e '[Yy].*[Yy].[Ee][Ee]' first.txt
そして
grep -e '[Ee][Ee].*[Yy].*[Yy]' first.txt
これらの2つを正規表現でどのようにリンクしますか?
答え1
..接続モードを介して?
grep -e '[Yy].*[Yy].[Ee][Ee][Ee][Ee].*[Yy].*[Yy]' first.txt
それとも、本質的に2つのパターンの論理ANDを実行するという意味ですか?
後者の場合、OR()とNOT(;)はgrep
組み込まれていますが、ANDは組み込まれていないため、偽造する必要があります。 1つの方法は、出力を別の出力にパイプすることです。|
-v
[^]
grep
grep -e '[Yy].*[Yy].[Ee][Ee]' first.txt | grep '[Ee][Ee].*[Yy].*[Yy]'
もう1つのアプローチは、論理OR(簡潔さのために省略)を使用して、任意の順序でリンクされた2つのパターンを見つけることです。
grep -Ee 'pattern1.*pattern2|pattern2.*pattern1' input.txt
私は最初のものがよりきれいでメンテナンスが簡単だと思います。
答え2
各パターン間で2つのパターンを同時にキャッチできます\|
。
grep -e '[Yy].*[Yy].[Ee][Ee]'\|'[Ee][Ee].*[Yy].*[Yy]'