1

膨大な量のログ ファイルがあり、これらすべてのログ ファイルのすべての行で次のような行を見つけたいと考えています。

grep (または他のコマンド) を使用してこれを行うにはどうすればよいですか?

Windows で Cygwin (Linux コンソール エミュレーター) を使用しています。

例 :

2013-09-03 11:33:17    11278 ms ProcessMsgDisconnectV2_01 - Disconnection request received from MU.
4

3 に答える 3

2

この行を試してください:

awk '$4=="ms"&&$3>100' file

ここで100はあなたの値です。たとえば、シェル変数から引数を取得するには、次のようにします。

awk -v va="$value" '$4=="ms"&&$3>va' file
于 2013-09-03T13:24:32.960 に答える
1

小さな PHP スクリプトでこれを行うことができます: 最小値を設定します。

$minValue = 500;

すべての行をループします。ループ内:

$line = "test 1456ms"; // your line, here just example
    if (preg_match('/(\d{4})ms/m', $line, $matches)) {
        if ($matches[1][0] > $minValue) echo $line;
    }
}

これは、最初に発生した XXXXms のみをチェックします。他のオカレンスを確認したい場合は、preg_match_all代わりに使用してください。

于 2013-09-03T14:18:35.377 に答える