need help with writing shell script

Reply

Join Date: Oct 2007
Posts: 6
Reputation: n2201 is an unknown quantity at this point 
Solved Threads: 0
n2201 n2201 is offline Offline
Newbie Poster

need help with writing shell script

 
0
  #1
Oct 25th, 2007
I want to get out put as folows:

Shell Scripting Syntax (Toggle Plain Text)
  1. 100 HE01 {number of line in this file} {file created on time stamp}
  2. 200 LTXS {number of line in this file} {file created on time stamp}
  3.  
  4. (if the file does not exist then it should say FILE NOT AVAILABLE

to start with I have a input file (inputfile.txt) that contains following data:

Shell Scripting Syntax (Toggle Plain Text)
  1. 100 HE01 file1.txt
  2. 200 LTXS file2.txt

and file1.txt & file2.txt are in the current directory. there is a chance that they file may not exist.

I tried for loop, wc -l, grep, cut but the out put is not very satis factory.

Don't hesitate to give me any go-to or pointer to finding the solution. I don't expect you to do my work ;-)
Reply With Quote Quick reply to this message  
Join Date: Oct 2007
Posts: 399
Reputation: eggi will become famous soon enough eggi will become famous soon enough 
Solved Threads: 47
eggi eggi is offline Offline
Posting Whiz

Re: need help with writing shell script

 
0
  #2
Oct 26th, 2007
#!/bin/ksh

cat inputfile.txt|while read v w x
do
if [ -e $x ]
then
num_lines=`wc -l $x|sed -e 's/ *//' -e 's/ .*$//'`
time_stamp=`ls -l $x|awk '{print $6 "_" $7 "_" $8}'`
echo "$v $w $x $num_lines $time_stamp"
fi
done

That will give you output like this (when both files exist - either one would just not do anything if they weren't there)

100 HE01 file1.txt 3 Oct_25_22:27
200 LTXS file2.txt 12 Oct_25_22:27

Hope that helps

, Mike
Linux and Unix Tips, Tricks and Individual Advice - The Linux and Unix Menagerie!
------------------------------------------------------------------------
The greatest viral marketing idea of all time, get your copy of this Free Report now!
Reply With Quote Quick reply to this message  
Join Date: Oct 2007
Posts: 6
Reputation: n2201 is an unknown quantity at this point 
Solved Threads: 0
n2201 n2201 is offline Offline
Newbie Poster

Re: need help with writing shell script

 
0
  #3
Oct 26th, 2007
Thank you Mike,

This was perfect. This is exactly what I was looking for!

I guess I cannot thank you enough :-)

Nikhil
Reply With Quote Quick reply to this message  
Join Date: Apr 2006
Posts: 148
Reputation: ghostdog74 is on a distinguished road 
Solved Threads: 40
ghostdog74 ghostdog74 is offline Offline
Junior Poster

Re: need help with writing shell script

 
0
  #4
Oct 28th, 2007
Originally Posted by eggi View Post
#!/bin/ksh

cat inputfile.txt|while read v w x
do
if [ -e $x ]
then
num_lines=`wc -l $x|sed -e 's/ *//' -e 's/ .*$//'`
time_stamp=`ls -l $x|awk '{print $6 "_" $7 "_" $8}'`
echo "$v $w $x $num_lines $time_stamp"
fi
done
no need for cat
Shell Scripting Syntax (Toggle Plain Text)
  1. while read ....
  2. do
  3. ....
  4. done < inputfile.txt
Reply With Quote Quick reply to this message  
Join Date: Oct 2007
Posts: 399
Reputation: eggi will become famous soon enough eggi will become famous soon enough 
Solved Threads: 47
eggi eggi is offline Offline
Posting Whiz

Re: need help with writing shell script

 
0
  #5
Oct 28th, 2007
Pick your poison, I guess - cat or redirect STDIN.

Thanks for the alternative suggestion

, Mike
Linux and Unix Tips, Tricks and Individual Advice - The Linux and Unix Menagerie!
------------------------------------------------------------------------
The greatest viral marketing idea of all time, get your copy of this Free Report now!
Reply With Quote Quick reply to this message  
Join Date: Oct 2007
Posts: 399
Reputation: eggi will become famous soon enough eggi will become famous soon enough 
Solved Threads: 47
eggi eggi is offline Offline
Posting Whiz

Re: need help with writing shell script

 
0
  #6
Oct 28th, 2007
Meant to write - cat or redirect output from file. I really have to stop posting on weekend mornings

Again, thanks

, Mike
Linux and Unix Tips, Tricks and Individual Advice - The Linux and Unix Menagerie!
------------------------------------------------------------------------
The greatest viral marketing idea of all time, get your copy of this Free Report now!
Reply With Quote Quick reply to this message  
Join Date: Oct 2007
Posts: 6
Reputation: n2201 is an unknown quantity at this point 
Solved Threads: 0
n2201 n2201 is offline Offline
Newbie Poster

Re: need help with writing shell script

 
0
  #7
Nov 9th, 2007
Mike (eggi),

your suggestion is correct. I hit this bug with the cat option: http://osdir.com/ml/shells.bash.bugs.../msg00023.html

Some how if you cat and pipe then the varibales are all converted to local variables within the while loop. I had to use the redirect input to over come the issue: Here is how I did it finally:

while read v w x
do
if [ -e /usr/task/shared/$x ];
then
{ num_lines=`wc -l /usr/task/shared/$x|sed -e 's/ *//' -e 's/ .*$//'`
time_stamp=`ls -l /usr/task/shared/$x|awk '{print $6 " " $7 " " $8}'`
echo "$v $w $time_stamp $num_lines" >> outputfile.txt
let total+=num_lines
}
else
{ echo "$v $w FILE DOES NOT EXIST" >> outputfile.txt
}
fi
done < /usr/task/lst_New_Leads_Camp.txt
echo "---------------------------------------------" >> outputfile.txt
echo " Total leads: ${total} " >> outputfile.txt
echo "---------------------------------------------" >> outputfile.txt
Reply With Quote Quick reply to this message  
Join Date: Oct 2007
Posts: 399
Reputation: eggi will become famous soon enough eggi will become famous soon enough 
Solved Threads: 47
eggi eggi is offline Offline
Posting Whiz

Re: need help with writing shell script

 
0
  #8
Nov 9th, 2007
Cool - that's good to know. I've never hit that bug, but I'll be sure not to now

BTW, Credit GhostDog with the suggestion to redirect, I suggested using cat, so I don't deserve the thanks - but it's the thought, or gesture, that counts

Take it easy

, Mike
Linux and Unix Tips, Tricks and Individual Advice - The Linux and Unix Menagerie!
------------------------------------------------------------------------
The greatest viral marketing idea of all time, get your copy of this Free Report now!
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the Shell Scripting Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC