다음을 포함하는 파일에 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