同じファイル内の2つの異なるパターンステートメントを個別にgrepする方法

同じファイル内の2つの異なるパターンステートメントを個別にgrepする方法

2種類のステートメントを含むログファイルがあります。

それを言う一つの方法は次のとおりです。

LOG:Update For User 12932030 statement  @2113 set startduration='2017-01-03 00:01:30'...
LOG:Update For User 12932030 statement @2033 set startduration=endduration ...
LOG:Update For User 12932031 statement @2403 set startduration='2017-01-04 00:02:30'...
LOG:Update For User 12932032 statement  @3113 set startduration='2017-01-09 00:03:30'...
LOG:Update For User 12932033 statement @9313 set startduration=endduration ...
LOG:Update For User 12932034 statement @9126 set startduration=endduration ...

だからここから2つを別々に抽出したいと思います。しかし、私の現在のアプローチは次のとおりです。

grep -i " LOG:Update For User set startduration"  log.csv > result.csv

2つの間に違いはありません。開始期間後にパターンをマージする方法がわかりません。助けてくれてありがとう。

答え1

これを2回試してくださいgrep

希望の出力タイプ1:

 grep -E "LOG:Update For User [0-9]* statement *@[0-9]* set startduration='" log.csv

LOG:Update For User 12932030 statement  @2113 set startduration='2017-01-03 00:01:30'...
LOG:Update For User 12932031 statement @2403 set startduration='2017-01-04 00:02:30'...
LOG:Update For User 12932032 statement  @3113 set startduration='2017-01-09 00:03:30'...

希望の出力タイプ2:

grep -E "LOG:Update For User [0-9]* statement *@[0-9]* set startduration=[^']" log.csv

LOG:Update For User 12932030 statement @2033 set startduration=endduration ...
LOG:Update For User 12932033 statement @9313 set startduration=endduration ...
LOG:Update For User 12932034 statement  @9126 set startduration=endduration ...

関連情報