SH Script

Hi all,
I need an help for this sh script (this is not an homework!)

The file a.txt is

 
20090825000501: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.327 IN /export/charging/chsLog/received
 
20090825000502: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.328 IN /export/charging/chsLog/received
 
20090825000503: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.329 IN /export/charging/chsLog/received
 
20090825000504: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.339 IN /export/charging/chsLog/received
 
20090825000505: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.340 IN /export/charging/chsLog/received
 
20090825000506: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.341 IN /export/charging/chsLog/received
 
20090825000506: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.342 IN /export/charging/chsLog/received
 
20090825000510: DELETING FILE = /export/charging/chsLog/received/RCV.chsLog.9790
 
20090825000510: DELETING FILE = /export/charging/chsLog/received/RCV.chsLog.9789
 
20090825000511: DELETING FILE = /export/charging/chsLog/received/RCV.chsLog.9912
 
20090825000511: DELETING FILE = /export/charging/chsLog/received/RCV.chsLog.9674
 
20090825000511: DELETING FILE = /export/charging/chsLog/received/RCV.chsLog.9913
 
20090825000529: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.509 IN /export/charging/chsLog/received
 
20090825000529: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.510 IN /export/charging/chsLog/received
 
20090825000529: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.240 IN /export/charging/chsLog/received
 
20090825000529: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.265 IN /export/charging/chsLog/received
 
20090825000530: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.283 IN /export/charging/chsLog/received
 
20090825000531: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.284 IN /export/charging/chsLog/received
 
20090825000540: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.285 IN /export/charging/chsLog/received
 
20090825000540: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.330 IN /export/charging/chsLog/received
 
20090825000541: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.331 IN /export/charging/chsLog/received
 
20090825000543: DELETING FILE = /export/charging/chsLog/received/RCV.chsLog.9721
 
20090825000543: DELETING FILE = /export/charging/chsLog/received/RCV.chsLog.9935
 
20090825000543: DELETING FILE = /export/charging/chsLog/received/RCV.chsLog.9722
 
20090825000550: DELETING FILE = /export/charging/chsLog/received/RCV.chsLog.9725
 
20090825000550: DELETING FILE = /export/charging/chsLog/received/RCV.chsLog.9936
 
20090825000550: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.334 IN /export/charging/chsLog/received
 
20090825000551: MOVING FILE /export/charging/chsLog/ready/RCV.chsLog.335 IN /export/charging/chsLog/received
 

I need to output:

 
File Exists!
Newest1 20090825000550 
Newest2 20090825000550 
Newest3 20090825000543 

Algorithm: the a.txt contains operations and it's written in append mode. So, searching from the bottom, the first three "DELETING FILE" are the desired rows. In a.txt, there are really blank rows as in the example.

Thanks to all,
Riccardo

awk '{ if (NF>0) { print $0}}' ax3.t | grep DELETING | tail -3 | cut -f1 -d":"|sed -n '1!G;h;$p'

An alternative solution

awk -F":" '/DELETING/{line[n] = $1; n++} 
END {i = n
        while (i > n - 4) {
	  print line	
	  i-- 
        }}' yourfile.txt

An other solution...

| grep -i deleting | tail -3 | sort -r | awk -F ":" '{print "Newest"NR,$1}'