Sponsored Content
Full Discussion: Parsing a control file loop
Top Forums Shell Programming and Scripting Parsing a control file loop Post 303017345 by MadeInGermany on Monday 14th of May 2018 01:23:39 PM
Old 05-14-2018
The following file has another separator at the end of the command field
Code:
RHEL:syslogd:sed -i '/^syslogd/ a*ACTION /etc/init.d/syslog start/' $CFG_DIR/ps_mon.cfg:
RHEL:ntpd:"sed -i '/^ntpd/ a*ACTION \/etc\/init.d\/ntpd start/' $CFG_DIR/ps_mon.cfg:
RHEL:scopeux:"sed -i '/^scopeux/ a*ACTION /opt/perf/bin/ovpa start all/' $CFG_DIR/ps_mon.cfg:

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

HP-UX:scopeux:file=$CFG_DIR/ps_mon.cfg; sed 's/^scopeux/ a\
*ACTION /opt/perf/bin/ovpa start all' "$file" > "$file".tmp && mv "$file".tmp "$file":
HP-UX:midaemon:file=$CFG_DIR/ps_mon.cfg; sed '/^midaemon/ a\
*ACTION /opt/perf/bin/ovpa start all' "$file" > "$file".tmp && mv "$file".tmp "$file":
HP-UX:perfalarm:file=$CFG_DIR/ps_mon.cfg; sed '/^perfalarm/ a\
*ACTION /opt/perf/bin/ovpa start all' "$file" > "$file".tmp && mv "$file".tmp "$file":

It can be parsed by the following Bourne-compatible shell script
Code:
#!/bin/sh
PATH=/bin:/usr/bin
sep=":"
while IFS=$sep read -r f1 f2 f3
do
  [ -n "$f1" ] || continue
  cmd=$f3
  while
    case $cmd in
    (*$sep) break;;
    esac
  do
    read line
    cmd="$cmd
$line"
  done
  cmd=`expr X"$cmd" : X"\(.*\)$sep"` 
  echo "\
field1 = $f1
field2 = $f2 
cmd = $cmd"
done

The good thing is, the command can contain any characters: \n or newlines, and all quoting characters, and even the : character!
NB the shell script reads from stdin. Run it with /bin/sh /path/to/script < input_file.

Last edited by MadeInGermany; 05-14-2018 at 02:43 PM..
This User Gave Thanks to MadeInGermany For This Post:
 

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
SHTOOL-SUBST.TMP(1)					      GNU Portable Shell Tool					       SHTOOL-SUBST.TMP(1)

NAME
shtool-subst - GNU shtool sed(1) substitution operations SYNOPSIS
shtool subst [-v|--verbose] [-t|--trace] [-n|--nop] [-w|--warning] [-q|--quiet] [-s|--stealth] [-i|--interactive] [-b|--backup ext] [-e|--exec cmd] [-f|--file cmd-file] [file] [file ...] DESCRIPTION
This command applies one or more sed(1) substitution operations to stdin or any number of files. OPTIONS
The following command line options are available. -v, --verbose Display some processing information. -t, --trace Enable the output of the essential shell commands which are executed. -n, --nop No operation mode. Actual execution of the essential shell commands which would be executed is suppressed. -w, --warning Show warning on substitution operation resulting in no content change on every file. The default is to show a warning on substitution operations resulted in no content change on all files. -q, --quiet Suppress warning on substitution operation resulting in no content change. -s, --stealth Stealth operation. Preserve timestamp on file. -i, --interactive Enter interactive mode where the user has to approve each operation. -b, --backup ext Preserve backup of original file using file name extension ext. Default is to overwrite the original file. -e, --exec cmd Specify sed(1) command directly. -f, --file cmd-file Read sed(1) command from file. EXAMPLE
# shell script shtool subst -i -e 's;(c) ([0-9]*)-2000;(c) 1-2001;' *.[ch] # RPM spec-file %install shtool subst -v -n -e 's;^(prefix=).*;1 $RPM_BUILD_ROOT%{_prefix};g' -e 's;^(sysconfdir=).*;1 $RPM_BUILD_ROOT%{_prefix}/etc;g' `find . -name Makefile -print` make install HISTORY
The GNU shtool subst command was originally written by Ralf S. Engelschall <rse@engelschall.com> in 2001 for GNU shtool. It was prompted by the need to have a uniform and convenient patching frontend to sed(1) operations in the OpenPKG package specifications. SEE ALSO
shtool(1), sed(1). 18-Jul-2008 shtool 2.0.8 SHTOOL-SUBST.TMP(1)
All times are GMT -4. The time now is 12:41 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy