ログファイルで複数の文字列を検索したい。すべての検索文字列が同じ行にある場合は、それらのエントリのみをハイライトする必要があります。これまたは他のより良いオプションに少ないコマンドを使用できますか?通常、ログファイルのサイズは数GBです。
string1
またはstring2
を検索する場合は、/string1|string2
を使用します。あなたはあなたが両方を見つける行を望んでいたと言いました:
/string1.*string2
行の順序がわからず、完全な行を表示したい場合は、
/.*string1.*string2.*|.*string2.*string1.*
またはより短い
/.*(string1.*string2|string2.*string1).*
順序を固定せずにさらに多くの単語を組み合わせると混乱します。最初にawk
でフィルタリングするのはいいことです。
awk
を使用してファイルをフィルタリングし、less
を使用してフィルタリングされた結果を表示します。
awk '/pattern1/ && /pattern2/ && /pattern3/' file.log | less
ファイルが大きい場合は、stdbuf
を使用して、less
の初期の結果を確認できます。
stdbuf awk '/pattern1/ && /pattern2/ && /pattern3/' file.log | less