Esse tipo de coisa é muito mais difícil do que deveria ser com a maioria das ferramentas. awk
O módulo POSIX do GNU e do Perl fornece a strftime()
, mas não a strptime()
, que é o que você deseja.
De qualquer forma, ainda é muito fácil com o Perl ...
$ perl -MDate::Manip -lpe '$_=UnixDate(ParseDate($_), "%Y%m%d")' <<END
> July 29th, 2011
> December 9th, 2010
> END
20110729
20101209
Obviamente, há mais do que isso, já que você realmente deseja converter o HTML. Se você conseguir descobrir um regex com o sed que funcione para encontrar as seqüências de datas, poderá fazer algo muito semelhante ao 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"