임의의 텍스트와 ISO 형식의 많은 날짜/시간(예: "2012-07-02T10:47:24+02:00")이 포함된 목록 파일이 있는 경우 이러한 모든 날짜/시간을 찾아 각각에 2를 추가하려면 어떻게 해야 합니까? 이상적으로는 하루가 24시간이라는 사실을 고려한 솔루션이 좋을 것입니다(예: "02T23:15 + 2"는 "02T25:15"가 아닌 "03T01:15"가 되어야 함). 그러나 제 경우에는 별거 아닙니다. 가능한 시간대 결과를 무시하고 이를 간단한 수학 연산으로 생각합시다.
예를 들어, 저는 Python에서 이 작업을 수행하는 방법을 이미 알고 있습니다. 모든 파일을 한 줄씩 읽고 날짜/시간이 발견되면 줄을 바꾸는 방법입니다. 하지만 awk나 sed를 사용하여 이 작업을 수행하는 더 직접적인 방법이 있는지 궁금합니다. ?
감사해요!
답변1
이것은 직업에 더 가깝습니다 perl
.
perl -MTime::Piece -pi -e 's/\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d/
(Time::Piece->strptime($&,"%Y-%m-%dT%T")+2*3600)->datetime/ge' file1 file2...