deleting specific lines in a file

Hello, I have a file like:

26-07-2011 sunz02       [ OK ]          message1
26-07-2011 sunz02       [ OK ]          message2
26-07-2011 sunz02       [ OK ]          message3
15-07-2011 sunz02       [ OK ]          message1
15-07-2011 sunz02       [ OK ]          message2
15-07-2011 sunz02       [ OK ]          message3
14-07-2011 sunz02       [ OK ]          message1
14-07-2011 sunz02       [ OK ]          message2
14-07-2011 sunz02       [ OK ]          message3

And I want to delete all lines whose date is 10+ days (in bash)

Thank you

awk -F'[ -]' -vv=$(date +%Y%m%d) 'v-($3$2$1)<10' file

It does not work properly when the date of today is in the range of the first days of a month/year.

---------- Post updated 27-07-11 at 12:05 AM ---------- Previous update was 26-07-11 at 01:57 PM ----------

There has to be some way to do that comparing dates or something..

This should work

# awk -F'[ -]' -vv=$(date --date='11 day ago' +%Y%m%d) '($3$2$1)>v' file
26-07-2011 sunz02       [ OK ]          message1
26-07-2011 sunz02       [ OK ]          message2
26-07-2011 sunz02       [ OK ]          message3

# uname -a

Linux test.hotspot 2.6.25.20 #1 SMP Thu May 14 23:12:00 CEST 2009 i686 GenuineIntel unknown GNU/Linux

Ops, this should work

# awk -F'[ -]' '($3$2$1)>"'$(date --date='11 day ago' +%Y%m%d)'"' file
26-07-2011 sunz02       [ OK ]          message1
26-07-2011 sunz02       [ OK ]          message2
26-07-2011 sunz02       [ OK ]          message3
# uname -a
Linux test.hotspot 2.6.25.20 #1 SMP Thu May 14 23:12:00 CEST 2009 i686 GenuineIntel unknown GNU/Linux

It does not work under AIX:

# uname -a
AIX test 3 5 00020591D600
# cat prueba2
26-07-2011 sunz02       [ OK ]          message1
26-07-2011 sunz02       [ OK ]          message2
26-07-2011 sunz02       [ OK ]          message3
24-07-2011 sunz02       [ OK ]          message1
24-07-2011 sunz02       [ OK ]          message2
24-07-2011 sunz02       [ OK ]          message3
15-07-2011 sunz02       [ OK ]          message1
15-07-2011 sunz02       [ OK ]          message2
15-07-2011 sunz02       [ OK ]          message3
14-07-2011 sunz02       [ OK ]          message1
14-07-2011 sunz02       [ OK ]          message2
14-07-2011 sunz02       [ OK ]          message3
# awk -F'[ -]' '($3$2$1)>"'$(date --date='11 day ago' +%Y%m%d)'"' prueba2
date: Not a recognized flag: -
Usage: date [-u] [+"Field Descriptors"]
26-07-2011 sunz02       [ OK ]          message1
26-07-2011 sunz02       [ OK ]          message2
26-07-2011 sunz02       [ OK ]          message3
24-07-2011 sunz02       [ OK ]          message1
24-07-2011 sunz02       [ OK ]          message2
24-07-2011 sunz02       [ OK ]          message3
15-07-2011 sunz02       [ OK ]          message1
15-07-2011 sunz02       [ OK ]          message2
15-07-2011 sunz02       [ OK ]          message3
14-07-2011 sunz02       [ OK ]          message1
14-07-2011 sunz02       [ OK ]          message2
14-07-2011 sunz02       [ OK ]          message3
#