동일한 파일에서 두 개의 서로 다른 패턴 문을 개별적으로 grep하는 방법

동일한 파일에서 두 개의 서로 다른 패턴 문을 개별적으로 grep하는 방법

두 가지 유형의 명령문이 포함된 로그 파일이 있습니다.

그것을 말하는 한 가지 방법은 다음과 같습니다

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 ...

그래서 여기에서 두 가지를 별도로 추출하고 싶습니다. 하지만 나의 현재 접근 방식은 다음과 같습니다

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

둘 사이에는 차이가 없습니다. 시작 기간 후에 패턴을 병합하는 방법을 잘 모르겠습니다. 도움을 주시면 감사하겠습니다.

답변1

이것을 두 번 사용해 보십시오 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 ...

관련 정보