Aqui está um script awk que acabei de escrever, deve funcionar com um awk POSIX. Você terá que experimentar a versão do Solaris; lembre-se que existem duas versões do Awk no Solaris também, uma em / bin e uma em / usr / xpg4 / bin / awk (que é nawk, acredito).
BEGIN {
daysofmonth["01"] = 0; daysofmonth["02"] = 31; daysofmonth["03"] = 59;
daysofmonth["04"] = 90; daysofmonth["05"] = 120; daysofmonth["06"] = 151;
daysofmonth["07"] = 181; daysofmonth["08"] = 212; daysofmonth["09"] = 243;
daysofmonth["10"] = 273; daysofmonth["11"] = 304; daysofmonth["12"] = 334;
fullday = 86400;
}
/[12][09][0-9][0-9][01][0-9][0123][0-9]/ {
year = substr($0, 1, 4); month = substr($0, 5, 2); day = substr($0, 7, 2);
date = ((year - 1970) * 365.25) + daysofmonth[month] + day - 1;
if ((year % 4) == 0 && month > 2) { date = date + 1; }
print date * fullday - (25200);
}
{}
Transmita uma string de data YYYYmmdd e ela será convertida em número de segundos desde a Epoch (com um pouco de limite por estar nos limites do dia). Então você será capaz de subtrair os dois.
today='echo 20110210 | awk -f convdate.awk'
then='echo 20001231 | awk -f convdate.awk'
sincethen='expr $today - $then'