grep
私はこれを使ってこれを行う方法を知っています。ジグレフ
grep -E 'Pattern1.*Patter2' fileName
私はそれを使用していますジグレフ.json.gz
ファイル内のパターンを一致させます。ファイルが大きすぎるのでzgreppattern1を
したいと思います。BOTH
そしてパターン2、順序は重要ではありません。
可能ですか?
答え1
grep
論理AND演算子はありません。正規表現OR演算子を使用しても同じ結果が得られます。
zgrep -E 'pattern1.*pattern2|pattern2.*pattern1' filename
答え2
パターン1とパターン2の両方が存在しますが、順序に関係なく行を探しているようです(しかし実際には明確ではありません)。
簡単な解決策はですzcat FileName | grep -E pattern1 | grep -E pattern2
。しかし、これは解凍されたファイル全体が最初のファイルにパイプされることを意味します。
この問題を処理し、zgrep
ファイル内の発生回数が制限されている場合は正常に動作します。 (最もまれな場合は交換する必要があります。)pattern1
zgrep -E pattern1 | grep -E pattern2
pattern2
ソリューションと一緒に@mashuptwiceによって提供された答えはうまくいきますが、関連する難易度によって異なり、始めるのが難しいかもしれませんpattern1
。pattern2
問題を解決できませんでした。 2つの文字列を任意の順序で(しかしメモリに限定されていない)検索したいと思いperl -ale 'print if (/pattern1/ && /pattern2/)'
(ほとんどの言語では同様のことを許可しますが、私はPerlが好きです)良い解決策になりました。 (あなたの場合は、スクリプトで解凍を処理する必要があります)