질문댓글로 추가요청에 답변해주세요

질문댓글로 추가요청에 답변해주세요

날짜와 시간만 삭제하세요(예:2018-05-09-10.13) 아래 문자열에서

/pi_nfs/pixin/axpin-zhgahh/was_logs/was_admin_logs/start_WPS.log.05- 
09-2018-10.13:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember stop 
completed.
/pm_nfs/pmfin/axpin-zhgahh/was_logs/was_admin_logs/start_WPS.log.05- 
09-2018-23.00:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember stop 
completed.

아래 조합을 시도했지만 반환되었습니다.

주문하다:

zgrep -i "AppClusterMember stop completed" /pi_nfs/pixin/axpin 
zhgahh/was_logs/was_admin_logs/start_WPS.log.05-09-2018*|cut -d '.' -f3

산출:

05-09-2018-10.13:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember 
stop completed
05-09-2018-23.00:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember 
stop completed

예상 출력:

05-09-2018-10.13
05-09-2018-23.00

답변1

답변

grep -Eo "[0-9]{2}-[0-9]{2}-[0-9]{1,4}-[0-9]{2}\.[0-9]{2}" file

설명하다

심벌 마크:

-E- 확장 정규식을 사용하세요. (정규식에서 특정 문자를 이스케이프하지 않고 사용할 수 있습니다.)

-o- 일치하는 출력만 인쇄합니다.

정규식:

[0-9]0- -에 숫자가 있으면 문자와 일치 합니다 9.

[0-9]{x}x0- 연속된 문자와 일치 - 연속된 문자가 숫자인 경우 9.

[0-9]{x,y}x- 숫자인 경우 최소한 연속된 문자와 일치하고 0, 9그 이상일 경우 가장 많은 y문자와 일치합니다.

-특별한 의미는 없으며 grep정확한 문자를 일치시키려고 노력합니다 -.

.이는 정확한 문자를 나타내기 any character위해 이스케이프를 사용해야 함을 의미합니다 .\.

질문댓글로 추가요청에 답변해주세요

zgrep -Po "[0-9]{2}-[0-9]{2}-[0-9]{1,4}-[0-9]{2}\.[0-9]{2}(?=.*stop completed\.)" file.gz

설명하다

~에서zgrep 매뉴얼:

Zgrep은 압축 또는 gzip 압축 파일에서 grep을 호출합니다.
지정된 모든 옵션은 grep에 직접 전달됩니다.

그래서 새로 추가된 플래그와 정규식 부분에 대해서만 설명하겠습니다.

심벌 마크:

-P- Perl 정규 표현식을 사용하세요. (미리보기 허용)

정규식:

(?=.*stop completed\.)(?=- 정규식 중 from to 부분을 )이라고 합니다 Positive look-ahead.
이 경우 이전 정규식과 일치합니다.오직줄에 stop completed.after가 포함된 경우.

답변2

echo "/pi_nfs/pixin/axpin-zhgahh/was_logs/was_admin_logs/start_WPS.log.05-09-2018-10.13:ADMU4000I: Server Node_axpin-zhgahh_AppClusterMember stop completed." | cut -d"." -f3,4 | cut -d":" -f1

출력은 다음과 같습니다

05-09-2018-10.13

그래서 다음과 같은 것이 필요할 것 같습니다.

cut -d"." -f3,4 YOUR_FILENAME | cut -d":" -f1

YOUR_FILENAME사용하려는 실제 파일 이름은 어디에 있습니까?

답변3

awk -F: '{split($1,a,".");print a[3]"."a[4]}' input.txt

zgrep -i "AppClusterMember stop completed" /pi_nfs/pixin/axpin zhgahh/was_logs/was_admin_logs/start_WPS.log.05-09-2018* | awk -F: '{split($1,a,".");print a[3]"."a[4]}'
  • -F: 레코드 분할 기준: (콜론)
  • Split($1,a,".") - 레코드 1을 다음으로 분할합니다. (점)이라는 배열에 값을 유지합니다.
  • print a[3]"."a[4] - 배열 값을 인쇄합니다.

관련 정보