200개 로그 파일의 시작 및 종료 시간

200개 로그 파일의 시작 및 종료 시간

나는 약 200개의 디렉토리를 가지고 있다. 각 디렉터리에는 하나의 로그 파일만 포함됩니다.
로그 파일의 첫 번째 줄은 특정 작업의 시작 시간을 지정하고 마지막 줄은 작업의 종료 시간을 지정합니다.

디렉터리 이름을 CSV 파일로 내보낼 수 있습니다. 각 디렉터리 내의 로그 파일에서 시작 및 종료 시간을 캡처하는 데 도움이 필요합니다.

명령/루프를 공유해 주세요. 여기에 예가 있습니다.

Direcotry PS-PR-9928883838383 
log name PS-PR-9928883838383.log

로그에는 시작 타임스탬프와 마지막 타임스탬프가 있습니다.

  2019-08-29::22:59:13 INFO com.bns.csm.####.####AppHandlerImpl:868 [pool-1-thread-5] #### = /bns/csm/ac_data/workdir/MsgService/####/Apps/####/working/PS-PR-20190829225849147/priceReq_@@@@_PS-PR-20190829225849147_20190830.csv completion confirmation is known by below line 2019-08-29::22:59:22 INFO com.bns.csm.####24 [pool-87-thread-1] THREAD for ### extract with output location = /bns/csm/ac_data/workdir/MsgService/####/Apps/@@@@/working/PS-PR-20190829225849147/priceResponse_@@@@_PS-PR-20190829225849147_20190830.txt: End. –

답변1

다음과 같이 시도해 보세요.

find . -type f -name 'PS-PR-*.log' -exec awk '
  NR==1 { printf "%s,%s,", FILENAME, $1};
  $NF == "End." {print $1}' {} +

로그 데이터를 게시하지 않았으므로 줄 끝에 있는 내용이 End.실제로 거기에 있는지, 아니면 일부 복사 및 붙여넣기 아티팩트인지 확실하지 않습니다. 위의 내용은 존재하지 않는다고 가정합니다.

그 경우실제로 존재한다면 End.마지막 필드가 아닌 끝에서 두 번째 필드에 있는 것입니다. 따라서 다음을 사용하십시오.

$(NF-1) == "End." {print $1}

대신에.

관련 정보