यहाँ एक awk script है जो मैंने अभी लिखी है, एक POSIX awk के साथ काम करना चाहिए। आपको सोलारिस संस्करण का प्रयास करना होगा; याद रखें कि सोलारिस पर Awk के दो संस्करण हैं, एक / बिन में और एक / usr / xpg4 / bin / awk में (जो nawk है, मुझे विश्वास है)।
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);
}
{}
एक YYYYmmdd दिनांक स्ट्रिंग पास करें और यह युग के बाद से सेकंड की संख्या में परिवर्तित हो जाएगा (दिन की सीमाओं पर होने के लिए थोड़ी सी छूट के साथ)। तब तुम दोनों को घटा सकोगे।
today=`echo 20110210 | awk -f convdate.awk`
then=`echo 20001231 | awk -f convdate.awk`
sincethen=`expr $today - $then`