타임스탬프 HH:MM:SS에 대한 정규식?

타임스탬프 HH:MM:SS에 대한 정규식?

다음을 포함하는 파일에 result다음이 포함됩니다.

<span class=timestamp><b>15:31:00</b></span>

타임 스탬프를 찾는 방법은 무엇입니까?

다음은 몇 가지 시도와 그 결과입니다.

> grep "[0..9]*:[0..9]*:[0..9]*"  result -o

> grep "[0..9]*:[0..9]*"  result -o
:
:00

> grep "[0..9]*:"  result -o
:
:

답변1

나는 사용할 것이다

grep -o '[0-2][0-9]:[0-5][0-9]:[0-5][0-9]' result

결과를 잠재적으로 타임스탬프인 문자열로 제한하려면 0에서 29 사이의 시간(오전/오후 12시가 아닌 24시간을 가정하여 23에 대한 근사치), 0에서 59 사이의 분과 초를 사용합니다.

확장 정규식을 도입하면 일치가 더욱 엄격해집니다.

grep -oE '([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]' result

윤초를 허용하려면 60이 허용 가능한 값이어야 합니다.

grep -oE '([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)' result

(UTC 자정 직전에 추가되지만 위의 내용은 다른 시간대를 허용합니다).

답변2

동일한 결과를 얻으려면 아래 명령을 사용할 수 있습니다.

grep -o "[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}" result

관련 정보