#!/bin/bash
awk 'BEGIN{
m=split("January|February|March|April|May|June|July|August|September|October|November|December",d,"|")
for(o=1;o<=m;o++){
months[d[o]]=sprintf("%02d",o)
}
}
{
sub(/.*:/,"",$(NF-2))
t=mktime($(NF)" "months[$(NF-1)]" "$(NF-2)" 0 0 0")
time[t]=$(NF-2) FS $(NF-1) FS $(NF)
$(NF-2)=$(NF-1)=$(NF)=""
gsub(/ +$/,"")
if (!($0 in array)){array[$0]=99999999999999}
if ( t <= array[$0] ){ array[$0]=t }
}
END{
for(i in array){ print "->",i,time[array[i]] }
} ' file
выход
$ ./shell.sh
-> Easy Living 7 July 1937
-> Easy Going Gordon 6 August 1925
-> Easy Listening 14 January 2002
-> Easy Going 22 May 1926
-> Easy Life 20 May 1944