O seguinte irá reformatar as datas:
dir -1 backups | awk '/Complete\ Backup\ .*\.tar\.bz2/ { gsub(/\/, ""); sub(/Complete Backup /, ""); sub(/.tar.bz2/, ""); gsub(/-/, " "); print strftime("%c", mktime($0)); }'
E aqui está uma maneira de colocar isso em um select:
OIFS="$IFS"; IFS=$'\n'; set -- $(dir -1 backups | awk '/Complete\ Backup\ .*\.tar\.bz2/ { gsub(/\/, ""); sub(/Complete Backup /, ""); sub(/.tar.bz2/, ""); gsub(/-/, " "); print strftime("%c", mktime($0)); }'); IFS="$OIFS"
select date in "$@"; do echo "$date"; done
Aqui está uma versão que classifica as datas:
OIFS="$IFS"
IFS=$'\n'
set -- $(
dir -1 backups |
awk '/Complete\ Backup\ .*\.tar\.bz2/ \
{
gsub(/\/, "");
sub(/Complete Backup /, "");
sub(/.tar.bz2/, "");
gsub(/-/, " ");
VAL[NR] = mktime($0);
}
END \
{
for ( i = asort(VAL); i > 0; i-- )
{
print strftime("%a %b %d %T %Z %Y", VAL[i]);
}
}'
)
IFS="$OIFS"
select date in "$@"
do
echo "$date"
done