The UNIX and Linux Forums  


Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
.
google unix.com



Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-27-2008
h3llh0l3 h3llh0l3 is offline
Registered User
  
 

Join Date: Oct 2008
Posts: 9
Is it possible with sed or awk?

Hi all,

I am tring to write a script which should read the first line of the file and perform some task. Once the task is completed the next line of the file should be read the task should be performed.
So is it possible to have a counter sort of thing, in sed or awk, which would increment and hence cause the next line to be read?
Following is how I thought of doing it, but it does not work as I can't assign value to $C to get to read a line:


Code:
C=1 #counter
while true
do
 LOG=`sed '$C!d' /var/log/somelog.log`
 #
 perform the task on $LOG
 #
 C=`expr $C + 1`
done

Thanks
  #2 (permalink)  
Old 10-27-2008
danmero danmero is online now Forum Advisor  
  
 

Join Date: Nov 2007
Location: 45.48-73.63
Posts: 1,439
Basic scripting concept:

Code:
while read line
do
  #perform the task on "$line"
done < /var/log/somelog.log

  #3 (permalink)  
Old 10-27-2008
h3llh0l3 h3llh0l3 is offline
Registered User
  
 

Join Date: Oct 2008
Posts: 9
Thanks for the reply danmero.

I had tried that earlier. When the script reads thru somelog.log and reaches EOF it exits. But I don't want it to exit. If the EOF is reached the script should wait till new line is added to somelog.log and then perform the task. Also the new to somelog.log would be added at random intervals.

Any suggestions on how to have the script wait where it stopped rather than exiting and continue when the new line is added?

Thanks.
  #4 (permalink)  
Old 10-27-2008
Tytalus's Avatar
Tytalus Tytalus is offline Forum Advisor  
echo {1..9}^2\;|bc
  
 

Join Date: Jun 2003
Location: Scotland
Posts: 431
you could tail -f the log and parse that through the script.

Should work....alternative method is to remeber where you got to in the file (line count) and then run your script at intervals starting where you left off - just be careful handling logrotates
  #5 (permalink)  
Old 10-27-2008
h3llh0l3 h3llh0l3 is offline
Registered User
  
 

Join Date: Oct 2008
Posts: 9
Quote:
Originally Posted by Tytalus View Post
you could tail -f the log and parse that through the script.

Should work....alternative method is to remeber where you got to in the file (line count) and then run your script at intervals starting where you left off - just be careful handling logrotates
If I tail -f the log and parse it through the script when a new line is added to the log the script exits.
I haven't tried the alternative step yet as I am not familiar with logrotates.
Would there be any other way to do this?

Thanks.
  #6 (permalink)  
Old 10-28-2008
Tytalus's Avatar
Tytalus Tytalus is offline Forum Advisor  
echo {1..9}^2\;|bc
  
 

Join Date: Jun 2003
Location: Scotland
Posts: 431
hmm - try something like:


Code:
#  tail -f infile | while read line; do echo $line | tr "[a-z]" "[A-Z]"; done
HELLO
WORLD

where infile was an empty file, and I simply did:


Code:
#  echo hello >> infile
#  echo world >> infile

  #7 (permalink)  
Old 10-28-2008
h3llh0l3 h3llh0l3 is offline
Registered User
  
 

Join Date: Oct 2008
Posts: 9
Thanks for the reply tytalus.

I guess this would not work for me as my script contains 10 logics in it. So I took another route and using cron and ls and moving the files around once the job is over I got it to do the job. But it would have been nice and easier if I could just figure out a way to do this as I wanted. Still I will continue to read thru and see if I can do it the way I wanted to do it.

Thanks again.
Closed Thread

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 11:54 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0