Sponsored Content
Full Discussion: Parsing a control file loop
Top Forums Shell Programming and Scripting Parsing a control file loop Post 303017313 by The Gamemaster on Monday 14th of May 2018 12:42:39 AM
Old 05-14-2018
I apologize to everyone helping out here, I posted such a bad sample of what I'm actually doing. Anyway this one below is much closer to what I'm actually doing.

Code:
RHEL:syslogd:"sed -i 's/^syslogd.*$/&\n*ACTION \/etc\/init.d\/syslog start/' $CFG_DIR/ps_mon.cfg"
RHEL:ntpd:"sed -i 's/^ntpd.*$/&\n*ACTION \/etc\/init.d\/ntpd start/' $CFG_DIR/ps_mon.cfg"
RHEL:scopeux:"sed -i 's/^scopeux.*$/&\n*ACTION \/opt\/perf\/bin\/ovpa start all/' $CFG_DIR/ps_mon.cfg"

SUSE:cron:"sed -i 's/^cron.*$/&\n*ACTION \/etc\/init.d\/cron start/' $CFG_DIR/ps_mon.cfg"
SUSE:scopeux:"sed -i 's/^scopeux.*$/&\n*ACTION \/opt\/perf\/bin\/ovpa start all/' $CFG_DIR/ps_mon.cfg"
SUSE:midaemon:"sed -i 's/^midaemon.*$/&\n*ACTION \/opt\/perf\/bin\/ovpa start all/' $CFG_DIR/ps_mon.cfg"

HP-UX:scopeux:"find $CFG_DIR -name "ps_mon.cfg" | while IFS= read -r file; do sed 's/^scopeux.*$/&@*ACTION \/opt\/perf\/bin\/ovpa start all/' "$file" | tr '@' '\n' > tmp && mv tmp "$file"; done"
HP-UX:midaemon:"find $CFG_DIR -name "ps_mon.cfg" | while IFS= read -r file; do sed 's/^midaemon.*$/&@*ACTION \/opt\/perf\/bin\/ovpa start all/' "$file" | tr '@' '\n' > tmp && mv tmp "$file"; done"
HP-UX:perfalarm:"find $CFG_DIR -name "ps_mon.cfg" | while IFS= read -r file; do sed 's/^perfalarm.*$/&@*ACTION \/opt\/perf\/bin\/ovpa start all/' "$file" | tr '@' '\n' > tmp && mv tmp "$file"; done"

I've just found a way on how to deal with \n special character in HP-UX thus the above. Anyway, I replaced the delimiters with ":" because spaces inside the commands in quotes are problematic. When I try the code below in HP-UX:

Code:
for line in `cat sample.ctl`
do
echo $line
done

I get the output below:

Code:
HP-UX:scopeux:"find
$CFG_DIR
-name
"ps_mon.cfg"
|
while
IFS=
read
-r
file;
do
sed
's/^scopeux.*$/&@*ACTION
\/opt\/perf\/bin\/ovpa
start
all/'
"$file"
|
tr
'@'
'
'
>
tmp
&&
mv
tmp
"$file";
done"

That's why I can't use awk to assign variables. The only way I've seen so far to solve this is to replace the spaces with another character, like a comma, then remove the comma with sed substitution when I assign the command on a variable. Too much of a hassle. If you have a way to simplify this, please let me know.

Thanks for the help so far.

Last edited by The Gamemaster; 05-14-2018 at 02:52 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sending control c in the loop

I want to go through the list of items and run it. while running it, some of them will have either >there is no response # and then end it... so that it can go to next item OR >there is response # but in order to break out of it, u need to do Control c. How do you send control... (6 Replies)
Discussion started by: hankooknara
6 Replies

2. Shell Programming and Scripting

find command in while loop - how to get control when no files found?

I have the following statement in script: find ${LANDING_FILE_DIR}${BTIME_FILENAME_PATTERN2} -print | while read file; do ... done When there are no files located by the find comand it returns: "find: bad status-- /home/rnitcher/test/....." to the command line How do I get control in... (3 Replies)
Discussion started by: mavsman
3 Replies

3. Shell Programming and Scripting

for loop control

Hi, I have taken a piece of code from a book, which is working as per the specification. The code.... for entry in * do if then echo $entry fi done The sub-directories present in the current directory will be displayed while executing. ... (3 Replies)
Discussion started by: saravanakumar
3 Replies

4. Shell Programming and Scripting

Control Not Coming Out Of While Loop

I have an empty .gz file in archival directory. And I am redirecting to a dat file. My while loop is not getting ended. I need the solution. cnt=0 while read line do cnt=`expr $cnt + 1` echo "$ARCH_DIR/$line.gz" >> $DATA_DIR/$FILE_LIST_FILE_FEB FILE_NAMES=${FILE_NAMES}"... (2 Replies)
Discussion started by: vinodh1978
2 Replies

5. Shell Programming and Scripting

Parsing of file for Report Generation (String parsing and splitting)

Hey guys, I have this file generated by me... i want to create some HTML output from it. The problem is that i am really confused about how do I go about reading the file. The file is in the following format: TID1 Name1 ATime=xx AResult=yyy AExpected=yyy BTime=xx BResult=yyy... (8 Replies)
Discussion started by: umar.shaikh
8 Replies

6. UNIX for Dummies Questions & Answers

For loop control with two variables in csh shell

Hi All How can i control for loop with two different variables in csh shell Regards Nikhil (1 Reply)
Discussion started by: Nikhilindurkar
1 Replies

7. Shell Programming and Scripting

Loop exit control

Hi I would like to exit the loop below on <Enter> even if it sleeps. Is it possible? while true do my_procedure; sleep 60 done Thanks (7 Replies)
Discussion started by: zam
7 Replies

8. Shell Programming and Scripting

Check and control params in parsing file

Hello, I would like to control and check the right parameters $1 must have 4 alphabetics digits among eora qora pora fora $2 must have 2 numerics digits 00 to 11 $3 must have 2 numerics digits 00 to 59 $4 must have 10 characters alpha numerics as 2013-02-26 For example : In case 5) if i... (1 Reply)
Discussion started by: amazigh42
1 Replies

9. Shell Programming and Scripting

Check and control params in parsing file

Hello, I would like to control and check the right parameters $1 must have 4 alphabetics digits among eora qora pora fora $2 must have 2 numerics digits 00 to 11 $3 must have 2 numerics digits 00 to 59 $4 must have 10 characters alpha numerics as 2013-02-26 For example : In case 5) if i... (15 Replies)
Discussion started by: amazigh42
15 Replies

10. Shell Programming and Scripting

Parsing log file and print latest number in loop

Hello All, I have an awk script which parses my log file and prints number grepping from a specific line/pattern, now i have to come with a shell script to continue reading the log untill the job is completed, which i would know while reading session log untill process encounters a final... (1 Reply)
Discussion started by: Ariean
1 Replies
LOGFETCH(1)						      General Commands Manual						       LOGFETCH(1)

NAME
logfetch - Xymon client data collector SYNOPSIS
logfetch CONFIGFILE STATUSFILE DESCRIPTION
logfetch is part of the Xymon client. It is responsible for collecting data from logfiles, and other file-related data, which is then sent to the Xymon server for analysis. logfetch uses a configuration file, which is automatically retrieved from the Xymon server. There is no configuration done locally. The configuration file is usually stored in the $BBHOME/tmp/logfetch.cfg file, but editing this file has no effect since it is re-written with data from the Xymon server each time the client runs. logfetch stores information about what parts of the monitored logfiles have been processed already in the $BBHOME/tmp/logfetch.status file. This file is an internal file used by logfetch, and should not be edited. If deleted, it will be re-created automatically. SECURITY
logfetch needs read access to the logfiles it should monitor. If you configure monitoring of files or directories through the "file:" and "dir:" entries in client-local.cfg(5) then logfetch will require at least read-acces to the directory where the file is located. If you request checksum calculation for a file, then it must be readable by the Xymon client user. Do NOT install logfetch as suid-root. There is no way that logfetch can check whether the configuration file it uses has been tampered with, so installing logfetch with suid-root privileges could allow an attacker to read any file on the system by using a hand-crafted con- figuration file. In fact, logfetch will attempt to remove its own suid-root setup if it detects that it has been installed suid-root. ENVIRONMENT VARIABLES
DU Command used to collect information about the size of directories. By default, this is the command du -k. If the local du-command on the client does not recognize the "-k" option, you should set the DU environment variable in the $BBHOME/etc/hobbitclient.cfg file to a command that does report directory sizes in kilobytes. FILES
$BBHOME/tmp/logfetch.cfg $BBHOME/tmp/logfetch.status SEE ALSO
xymon(7), hobbit-clients.cfg(5) Xymon Version 4.2.3: 4 Feb 2009 LOGFETCH(1)
All times are GMT -4. The time now is 03:43 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy