Log解析のための編集の例。
以下はJobLogからJOBの平均経過時間を求める例です。
この他にもデータ編集用に有力な次のようなコマンド/オプションがあります
Find -j :見つかった行の前後の行を連結。
"&"(2つの文字列をAND探索)との組み合わせで探索行の間を連結。
Find -L :見つかった行に行コマンドを設定。
カーソル移動が不要なのでexeコマンドファイル内での使用に
有用。
F *=Mn all:2つのファイルをキーマッチング。
REP/CRE/APP x/nx:非表示あるいは表示行のみからファイルを(追加)作成。
SPLit strdelm:行を指定の文字列の箇所で切断。
JOIn x/nx:非表示あるいは表示行1行に連結する。
TC FMT :フィールドの桁位置を整列してCut&Pasteを可能にする。
大きすぎるファイルには xfmt ユーティリティーを
使用してください。
TC ~ :存続カウント計算。EVENT開始/終了時間から各レコードの発生時刻の
EVENTの存在件数をカウントする。例えばTCP/IPトレースのSYN/FIN
レコードを整形して一行にし、並行セッション数を調査するなど。
大きすぎるファイルには xfmt/xmj ユーティリティーを
使用してください。(例えばxfmtで必要な行、フィールドを抜き出し
ファイルサイズを小さくする。xmjで関連行を1行に連結する)
EXE :コマンドをファイルから実行。
同じ作業を複数のファイルに実行するときに有用です。
EXEコマンド用のファイルの編集には::clを利用することもできます。
(コマンドはオプションで::clにロギングすることができます。)
(1) "d" 行コマンドでヘッダー行等不用行を削除
dd | 5722SS1 V5R2M0 020719 Activity Log
dd | MSGID SEV MSG TYPE
0003| CPF1124 Info JOB 956017 18:25:14 started
0004| 956017 03/08/28 18:25:14.265840
0005| CPF1164 Comp 18:25:14 03/08/28 JOB 956017 Ended. rc=0.
0006| 956017 03/08/28 18:25:14.555056
0007| CPF1124 Info JOB 956018 18:25:24 started
0008| 956018 03/08/28 18:25:24.576336
0009| CPF1124 Info JOB 956019 18:25:34 started
0010| 956019 03/08/28 18:25:34.886520
0011| CPF1164 Comp 18:25:24 03/08/28 JOB 956018 Ended. rc=0.
0012| 956018 03/08/28 18:25:24.865520
0013| CPF1164 Comp 18:25:35 03/08/28 JOB 956019 Ended. rc=0.
0014| 956019 03/08/28 18:25:35.195192
0015| CPF1124 Info JOB 956020 18:25:40 started
0016| 956020 03/08/28 18:25:40.826792
0017| CPI9803 Info JOB 956020 assigned.
0018| 956020 03/08/28 18:25:41.225128
0019| CPF1164 Comp 18:25:41 03/08/28 JOB 956020 Ended. rc=0.
0020| 956020 03/08/28 18:25:41.794896
0021| CPF1124 Info JOB 956021 18:25:41 started
0022| 956021 03/08/28 18:25:41.836736
0023| CPI9803 Info JOB 956021 assigned.
0024| 956021 03/08/28 18:25:42.236168
0025| CPF1164 Comp 18:25:43 03/08/28 JOB 956021 Ended. rc=0.
0026| 956021 03/08/28 18:25:43.195912
0027| CPF1124 Info JOB 956022 18:25:43 started
0028| 956022 03/08/28 18:25:43.245872
0029| CPI9803 Info JOB 956022 assigned.
0030| 956022 03/08/28 18:25:43.677712
|
|
v
0003| CPF1124 Info JOB 956017 18:25:14 started
0004| 956017 03/08/28 18:25:14.265840
0005| CPF1164 Comp 18:25:14 03/08/28 JOB 956017 Ended. rc=0.
0006| 956017 03/08/28 18:25:14.555056
0007| CPF1124 Info JOB 956018 18:25:24 started
0008| 956018 03/08/28 18:25:24.576336
0009| CPF1124 Info JOB 956019 18:25:34 started
0010| 956019 03/08/28 18:25:34.886520
0011| CPF1164 Comp 18:25:24 03/08/28 JOB 956018 Ended. rc=0.
0012| 956018 03/08/28 18:25:24.865520
0013| CPF1164 Comp 18:25:35 03/08/28 JOB 956019 Ended. rc=0.
0014| 956019 03/08/28 18:25:35.195192
0015| CPF1124 Info JOB 956020 18:25:40 started
0016| 956020 03/08/28 18:25:40.826792
0017| CPI9803 Info JOB 956020 assigned.
0018| 956020 03/08/28 18:25:41.225128
0019| CPF1164 Comp 18:25:41 03/08/28 JOB 956020 Ended. rc=0.
0020| 956020 03/08/28 18:25:41.794896
0021| CPF1124 Info JOB 956021 18:25:41 started
0022| 956021 03/08/28 18:25:41.836736
0023| CPI9803 Info JOB 956021 assigned.
0024| 956021 03/08/28 18:25:42.236168
0025| CPF1164 Comp 18:25:43 03/08/28 JOB 956021 Ended. rc=0.
0026| 956021 03/08/28 18:25:43.195912
0027| CPF1124 Info JOB 956022 18:25:43 started
0028| 956022 03/08/28 18:25:43.245872
0029| CPI9803 Info JOB 956022 assigned.
0030| 956022 03/08/28 18:25:43.677712
(2) "j"行コマンドで複数行にまたがるレコードを一行に連結。
3行1レコードの時は jj3--jj とする。
(レコードタイプによって行数が異なるときはレコードタイプごとに抜き出して
連結する。レコードの抜き出しは "x all" で 全行非表示にした後,
例えば5行1レコードなら "i CP1164 -a4" とする。この意味はレコードID
をもつ行の後4行を表示するである。この後 "del x all" で該当レコードのみを
残し "jj4--jj"で一行にする。これを1つのファイル"app"コマンドで累積する。
それを各レコードタイプで繰り返す。)
jj | CPF1124 Info JOB 956017 18:25:14 started
0004| 956017 03/08/28 18:25:14.265840
0005| CPF1164 Comp 18:25:14 03/08/28 JOB 956017 Ended. rc=0.
0006| 956017 03/08/28 18:25:14.555056
0007| CPF1124 Info JOB 956018 18:25:24 started
0008| 956018 03/08/28 18:25:24.576336
0009| CPF1124 Info JOB 956019 18:25:34 started
0010| 956019 03/08/28 18:25:34.886520
0011| CPF1164 Comp 18:25:24 03/08/28 JOB 956018 Ended. rc=0.
0012| 956018 03/08/28 18:25:24.865520
0013| CPF1164 Comp 18:25:35 03/08/28 JOB 956019 Ended. rc=0.
0014| 956019 03/08/28 18:25:35.195192
0015| CPF1124 Info JOB 956020 18:25:40 started
0016| 956020 03/08/28 18:25:40.826792
0017| CPI9803 Info JOB 956020 assigned.
0018| 956020 03/08/28 18:25:41.225128
0019| CPF1164 Comp 18:25:41 03/08/28 JOB 956020 Ended. rc=0.
0020| 956020 03/08/28 18:25:41.794896
0021| CPF1124 Info JOB 956021 18:25:41 started
0022| 956021 03/08/28 18:25:41.836736
0023| CPI9803 Info JOB 956021 assigned.
0024| 956021 03/08/28 18:25:42.236168
0025| CPF1164 Comp 18:25:43 03/08/28 JOB 956021 Ended. rc=0.
0026| 956021 03/08/28 18:25:43.195912
0027| CPF1124 Info JOB 956022 18:25:43 started
0028| 956022 03/08/28 18:25:43.245872
0029| CPI9803 Info JOB 956022 assigned.
jj | 956022 03/08/28 18:25:43.677712
|
| (頁幅の関係で間のカラムは省略)
v
0003| CPF1124 Info JOB 956017 18:25:14 started ... 18:25:14.265840
0005| CPF1164 Comp 18:25:14 03/08/28 JOB 956017 Ended.... 03/08/28 18:25:14.555056
0007| CPF1124 Info JOB 956018 18:25:24 started ... 18:25:24.576336
0009| CPF1124 Info JOB 956019 18:25:34 started ... 18:25:34.886520
0011| CPF1164 Comp 18:25:24 03/08/28 JOB 956018 Ended.... 03/08/28 18:25:24.865520
0013| CPF1164 Comp 18:25:35 03/08/28 JOB 956019 Ended.... 03/08/28 18:25:35.195192
0015| CPF1124 Info JOB 956020 18:25:40 started ... 18:25:40.826792
0017| CPI9803 Info JOB 956020 assigned. ...1.225128
0019| CPF1164 Comp 18:25:41 03/08/28 JOB 956020 Ended.... 03/08/28 18:25:41.794896
0021| CPF1124 Info JOB 956021 18:25:41 started ... 18:25:41.836736
0023| CPI9803 Info JOB 956021 assigned. ...2.236168
0025| CPF1164 Comp 18:25:43 03/08/28 JOB 956021 Ended.... 03/08/28 18:25:43.195912
0027| CPF1124 Info JOB 956022 18:25:43 started ... 18:25:43.245872
0029| CPI9803 Info JOB 956022 assigned. ...3.677712
(3) TCコマンド、SORtコマンドでカラム指定パラメータがあるので Shift F11 で
桁ゲージを表示しておく。
|
| (頁幅の関係で間のカラムは省略)
v
col |....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0003| CPF1124 Info JOB 956017 18:25:14 started ... 18:25:14.265840
0005| CPF1164 Comp 18:25:14 03/08/28 JOB 956017 Ended.... 03/08/28 18:25:14.555056
0007| CPF1124 Info JOB 956018 18:25:24 started ... 18:25:24.576336
0009| CPF1124 Info JOB 956019 18:25:34 started ... 18:25:34.886520
0011| CPF1164 Comp 18:25:24 03/08/28 JOB 956018 Ended.... 03/08/28 18:25:24.865520
0013| CPF1164 Comp 18:25:35 03/08/28 JOB 956019 Ended.... 03/08/28 18:25:35.195192
0015| CPF1124 Info JOB 956020 18:25:40 started ... 18:25:40.826792
0017| CPI9803 Info JOB 956020 assigned. ...1.225128
0019| CPF1164 Comp 18:25:41 03/08/28 JOB 956020 Ended.... 03/08/28 18:25:41.794896
0021| CPF1124 Info JOB 956021 18:25:41 started ... 18:25:41.836736
0023| CPI9803 Info JOB 956021 assigned. ...2.236168
0025| CPF1164 Comp 18:25:43 03/08/28 JOB 956021 Ended.... 03/08/28 18:25:43.195912
0027| CPF1124 Info JOB 956022 18:25:43 started ... 18:25:43.245872
0029| CPI9803 Info JOB 956022 assigned. ...3.677712
(4) 不用行を削除する為に不用行を非表示にする
コマンド入力行===>x COI9803 all
|
| (頁幅の関係で間のカラムは省略)
v
col |....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0003| CPF1124 Info JOB 956017 18:25:14 started ... 18:25:14.265840
0005| CPF1164 Comp 18:25:14 03/08/28 JOB 956017 Ended.... 03/08/28 18:25:14.555056
0007| CPF1124 Info JOB 956018 18:25:24 started ... 18:25:24.576336
0009| CPF1124 Info JOB 956019 18:25:34 started ... 18:25:34.886520
0011| CPF1164 Comp 18:25:24 03/08/28 JOB 956018 Ended.... 03/08/28 18:25:24.865520
0013| CPF1164 Comp 18:25:35 03/08/28 JOB 956019 Ended.... 03/08/28 18:25:35.195192
0015| CPF1124 Info JOB 956020 18:25:40 started ... 18:25:40.826792
- 1 line excluded ----------------------------------------------------------------------
0019| CPF1164 Comp 18:25:41 03/08/28 JOB 956020 Ended.... 03/08/28 18:25:41.794896
0021| CPF1124 Info JOB 956021 18:25:41 started ... 18:25:41.836736
- 1 line excluded ----------------------------------------------------------------------
0025| CPF1164 Comp 18:25:43 03/08/28 JOB 956021 Ended.... 03/08/28 18:25:43.195912
0027| CPF1124 Info JOB 956022 18:25:43 started ... 18:25:43.245872
- 1 line excluded ----------------------------------------------------------------------
(5) 不用行を削除する。
コマンド入力行===>del x all
|
| (頁幅の関係で間のカラムは省略)
v
col |....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0003| CPF1124 Info JOB 956017 18:25:14 started ... 18:25:14.265840
0005| CPF1164 Comp 18:25:14 03/08/28 JOB 956017 Ended.... 03/08/28 18:25:14.555056
0007| CPF1124 Info JOB 956018 18:25:24 started ... 18:25:24.576336
0009| CPF1124 Info JOB 956019 18:25:34 started ... 18:25:34.886520
0011| CPF1164 Comp 18:25:24 03/08/28 JOB 956018 Ended.... 03/08/28 18:25:24.865520
0013| CPF1164 Comp 18:25:35 03/08/28 JOB 956019 Ended.... 03/08/28 18:25:35.195192
0015| CPF1124 Info JOB 956020 18:25:40 started ... 18:25:40.826792
0019| CPF1164 Comp 18:25:41 03/08/28 JOB 956020 Ended.... 03/08/28 18:25:41.794896
0021| CPF1124 Info JOB 956021 18:25:41 started ... 18:25:41.836736
0025| CPF1164 Comp 18:25:43 03/08/28 JOB 956021 Ended.... 03/08/28 18:25:43.195912
0027| CPF1124 Info JOB 956022 18:25:43 started ... 18:25:43.245872
(6) レコードID、この場合はMsgIDでSORT。
レコード毎にFormatが異なり、それぞれ毎に Cut & Paste で整形するためにSORTする
コマンド入力行===>sort 2-8
|
| (頁幅の関係で間のカラムは省略)
v
col |....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0003| CPF1124 Info JOB 956017 18:25:14 started ... 18:25:14.265840
0005| CPF1124 Info JOB 956018 18:25:24 started ... 18:25:24.576336
0006| CPF1124 Info JOB 956019 18:25:34 started ... 18:25:34.886520
0009| CPF1124 Info JOB 956020 18:25:40 started ... 18:25:40.826792
0011| CPF1124 Info JOB 956021 18:25:41 started ... 18:25:41.836736
0013| CPF1124 Info JOB 956022 18:25:43 started ... 18:25:43.245872
0015| CPF1164 Comp 18:25:14 03/08/28 JOB 956017 Ended.... 03/08/28 18:25:14.555056
0019| CPF1164 Comp 18:25:24 03/08/28 JOB 956018 Ended.... 03/08/28 18:25:24.865520
0021| CPF1164 Comp 18:25:35 03/08/28 JOB 956019 Ended.... 03/08/28 18:25:35.195192
0025| CPF1164 Comp 18:25:41 03/08/28 JOB 956020 Ended.... 03/08/28 18:25:41.794896
0027| CPF1164 Comp 18:25:43 03/08/28 JOB 956021 Ended.... 03/08/28 18:25:43.195912
(7) JOB番号でSORTする為に整形してJOB番号を同じカラムにする。
整形には Cut & Pasteを使用。行数が多いときは間の行を "x" 行コマンドで
非表示にし全体が見える形にすると操作がしやすい。
あるいは "(" などのシフト行コマンドを使用。
シフト行コマンドはカーソルをファイル内容欄に置けばそのカラムの
左ないし右側にのみ作用させることが出来る。
|
|
v
col |....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0003| CPF1124 Info JOB 956017 started 18:25:14.265840
0005| CPF1124 Info JOB 956018 started 18:25:24.576336
0007| CPF1124 Info JOB 956019 started 18:25:34.886520
0009| CPF1124 Info JOB 956020 started 18:25:40.826792
0011| CPF1124 Info JOB 956021 started 18:25:41.836736
0013| CPF1124 Info JOB 956022 started 18:25:43.245872
0015| CPF1164 Comp JOB 956017 Ended. 18:25:14.555056
0019| CPF1164 Comp JOB 956018 Ended. 18:25:24.865520
0021| CPF1164 Comp JOB 956019 Ended. 18:25:35.195192
0025| CPF1164 Comp JOB 956020 Ended. 18:25:41.794896
0027| CPF1164 Comp JOB 956021 Ended. 18:25:43.195912
(8) JOBごとにレコードを集める為にJOB番号でSORT
コマンド入力行===>sort 25-30
|
|
v
col |....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0003| CPF1124 Info JOB 956017 started 18:25:14.265840
0005| CPF1164 Comp JOB 956017 Ended. 18:25:14.555056
0007| CPF1124 Info JOB 956018 started 18:25:24.576336
0009| CPF1164 Comp JOB 956018 Ended. 18:25:24.865520
0011| CPF1124 Info JOB 956019 started 18:25:34.886520
0013| CPF1164 Comp JOB 956019 Ended. 18:25:35.195192
0015| CPF1124 Info JOB 956020 started 18:25:40.826792
0019| CPF1164 Comp JOB 956020 Ended. 18:25:41.794896
0021| CPF1124 Info JOB 956021 started 18:25:41.836736
0025| CPF1164 Comp JOB 956021 Ended. 18:25:43.195912
0027| CPF1124 Info JOB 956022 started 18:25:43.245872
(9) "j"行コマンドで同じJOBのレコードを一行に連結
ペアになってないレコードは"d"行コマンドで削除。
col |....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
jj | CPF1124 Info JOB 956017 started 18:25:14.265840
0005| CPF1164 Comp JOB 956017 Ended. 18:25:14.555056
0007| CPF1124 Info JOB 956018 started 18:25:24.576336
0009| CPF1164 Comp JOB 956018 Ended. 18:25:24.865520
0011| CPF1124 Info JOB 956019 started 18:25:34.886520
0013| CPF1164 Comp JOB 956019 Ended. 18:25:35.195192
0015| CPF1124 Info JOB 956020 started 18:25:40.826792
0019| CPF1164 Comp JOB 956020 Ended. 18:25:41.794896
0021| CPF1124 Info JOB 956021 started 18:25:41.836736
jj | CPF1164 Comp JOB 956021 Ended. 18:25:43.195912
d | CPF1124 Info JOB 956022 started 18:25:43.245872
|
|
v
col |....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0003| CPF1124 Info JOB 956017 started 18:25:14.265840 CPF1164 Comp JOB 956017 Ended. 18:25:14.555056
0007| CPF1124 Info JOB 956018 started 18:25:24.576336 CPF1164 Comp JOB 956018 Ended. 18:25:24.865520
0011| CPF1124 Info JOB 956019 started 18:25:34.886520 CPF1164 Comp JOB 956019 Ended. 18:25:35.195192
0015| CPF1124 Info JOB 956020 started 18:25:40.826792 CPF1164 Comp JOB 956020 Ended. 18:25:41.794896
0021| CPF1124 Info JOB 956021 started 18:25:41.836736 CPF1164 Comp JOB 956021 Ended. 18:25:43.195912
(10) TC コマンドのための整形
Cut & Paste で 必要なカラムのみを残す。
|
|
v
col |....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0003| JOB 956017 started 18:25:14.265840 Ended. 18:25:14.555056
0007| JOB 956018 started 18:25:24.576336 Ended. 18:25:24.865520
0011| JOB 956019 started 18:25:34.886520 Ended. 18:25:35.195192
0015| JOB 956020 started 18:25:40.826792 Ended. 18:25:41.794896
0021| JOB 956021 started 18:25:41.836736 Ended. 18:25:43.195912
(11) TCコマンドでJOBの存続時間を計算。
コマンド入力行===>tc 49-63-=23-30
|
|
v
col |....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0003| JOB 956017 started 18:25:14.265840 Ended. 00:00:00.555056
0007| JOB 956018 started 18:25:24.576336 Ended. 00:00:00.865520
0011| JOB 956019 started 18:25:34.886520 Ended. 00:00:01.195192
0015| JOB 956020 started 18:25:40.826792 Ended. 00:00:01.794896
0021| JOB 956021 started 18:25:41.836736 Ended. 00:00:02.195912
(12) JOB存続時間の合計、件数、最大、最小、平均を計算
コマンド入力行===>tc 49-63+ amm aft
|
|
v
col |....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0003| JOB 956017 started 18:25:14.265840 Ended. 00:00:00.555056
0007| JOB 956018 started 18:25:24.576336 Ended. 00:00:00.865520
0011| JOB 956019 started 18:25:34.886520 Ended. 00:00:01.195192
0015| JOB 956020 started 18:25:40.826792 Ended. 00:00:01.794896
0021| JOB 956021 started 18:25:41.836736 Ended. 00:00:02.195912
0022|= =00:00:06.606576; /5=00:00:01.321315; (00:00:00.555056<<00:00:02.195912);