Str1とstr2とstr3といういくつかの文字列があるとします。
これは3つの質問のように見えます。これらの種類の式を組み合わせる最も簡単な方法は、複数のパイプを使用することです。特に、正規表現( egrep を使用)は、順序の独立性が必要であることを示唆しているように見えるため、不当になります。
だから、順番に、
grep str1 | grep str2 | grep str3
egrep '(str1 | str2 | str3)'
grep str1 | egrep '(str2 | str3)'
「and」形式はegrepを使用して順序に依存しない方法で実行できますが、パイプされたgrepsを使用して順序に依存しないandを実行し、正規表現を使用して順序に依存しないまたはを覚える方が簡単だと思います。
grep
は先読みをサポートしていないため、「すべて」または「これに加えてこれらのいずれか」のケースを合理的に行うことはできません。 Perlを使用します。 「任意の」場合は、egrep '(str1|str2|str3)' file
です。
「すべて」の場合を行うための不合理な方法は次のとおりです。
egrep '(str1.*str2.*str3|str3.*str1.*str2|str2.*str1.*str3|str1.*str3.*str2)' file
つまり、順列を構築します。もちろん、これはとんでもないことです。
「これとそれらのいずれか」についても、同様に:
egrep '(str1.*(str2|str3)|(str2|str3).*str1)' file
grep -E --color "string1 | string2 | string3 ...."
たとえば、AMD(svm)またはIntel(vmx)プロセッサを使用しているシステムかどうか、64ビット(lm)かどうかを確認するには、lmはロングモードを意味します。つまり、64ビットを意味します...
コマンドの例:
grep -E --color "lm | svm | vmx"/proc/cpuinfo
-Eは複数の文字列を検索する必要があります