ack
を含むファイルを検索して、ALL(いずれも定義済みのパターン)を含む行を検索するにはどうすればよいですか? ack - 複数のパターンを検索する(論理AND)
ANY(OR)は以下のように、簡単です: AND(ALL)を書くこと
ack 'pattern1|pattern2|pattern3'
が、どのように?例えば以下の記述方法:
ack
を使用して
if($line =~ /pattern1/ && $line =~ /pattern2/ && $line =~ /pattern3/) {
say $line
}
?
より正確には、logical and
で正規表現を作成できますか?
yesにそれを簡素化することができます。これは、 'grep'で可能です)あまりにも。 1つのackで実行することはできません? - 例えばperl-regexesは何かを「AND」として知らないのですか? – cajwine
@cajwine:正規表現は論理ではなくパターンを行います。ちょっと賢明であるためには、正規表現の中で '| 'は"または "ではなく"交互 "を意味します。 "and"のメタ文字はありません。なぜなら、それは暗黙的なデフォルトであるからです。例えばパターン「ab」は、文字「a」と文字「b」(その順序で互いに隣接する)を一致させることを要求する。複数のパターンをマッチさせるには、複数のマッチ(アンフェタミンの答えのように)またはパターンを1つにマージする(池上の答えのように)必要があります。 –