SH Script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting SH Script
# 1  
Old 08-26-2009
SH Script

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

The file a.txt is
Code:
 
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:
Code:
 
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
# 2  
Old 08-26-2009
Code:
awk '{ if (NF>0) { print $0}}' ax3.t | grep DELETING | tail -3 | cut -f1 -d":"|sed -n '1!G;h;$p'


Last edited by sagar_evc; 08-26-2009 at 05:21 AM..
# 3  
Old 08-26-2009
An alternative solution
Code:
awk -F":" '/DELETING/{line[n] = $1; n++} 
END {i = n
        while (i > n - 4) {
	  print line[i]	
	  i-- 
        }}' yourfile.txt


Last edited by thanhdat; 08-26-2009 at 06:02 AM..
# 4  
Old 08-26-2009
An other solution...

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

Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question