날짜와 형식이 포함된 HTML 파일이 많이 있습니다.July 29th, 2011
날짜 형식을 , to 등 July 29th, 2011
으로 변경하고 싶습니다 .20110729
December 9th, 2010
20101209
작동할 수도 있을 것 같지만 sed
간접적인 순서로 인해 여전히 해결책을 찾을 수 없습니다.
답변1
이런 종류의 일은 대부분의 도구보다 훨씬 더 어렵습니다. GNU 와 Perl의 POSIX 모듈은 모두 사용자 가 원하는 것을 awk
제공 strftime()
하지만 정확하게는 제공하지 않습니다 .strptime()
어쨌든 Perl을 사용하는 것은 여전히 쉽네요...
$ perl -MDate::Manip -lpe '$_=UnixDate(ParseDate($_), "%Y%m%d")' <<END
> July 29th, 2011
> December 9th, 2010
> END
20110729
20101209
실제로 HTML을 변환하려고 하기 때문에 분명히 더 많은 것이 있습니다. sed를 사용하여 정규식을 찾을 수 있다면찾다날짜 문자열을 사용하면 Perl을 사용하여 매우 유사한 작업을 수행할 수 있습니다.
$ perl -MDate::Manip -lpe 's/(")([^"]+)(")/$1 . UnixDate(ParseDate($2), "%Y%m%d") . $3/ge' <<END
dates enclosed "July 29th, 2011" in quotes
"December 9th, 2010"
END
dates enclosed "20110729" in quotes
"20101209"