라는 파일에는 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