11-06-2008
awk/sed Command : Parse parameter file / send the lines to the ksh export command
Sorry for the duplicate thread this one is similar to the one in
https://www.unix.com/shell-programmin...#post302255121
Since there were no responses on the parent thread since it got resolved partially i thought to open the new thread for the remaining issue
I am writing a shell program that executes a lot of Oracle SQL Files on different databases based on the enviroment setting value. I am trying to design a parameter file where i can store the environment values for all the databases in the below format
Environment File
File Name oraenv
# /* DB1 */
ORACLE_SID=DB1
ORACLE_BASE=
ORACLE_HOME=
PATH=
LD_LIBRARY_PATH=
.
.
Other Parameters
# /* End */
# /* DB2 */
ORACLE_SID=DB2
ORACLE_BASE=
ORACLE_HOME=
PATH=
LD_LIBRARY_PATH=
.
.
Other Parameters
# /* End */
# /* DB3 */
ORACLE_SID=DB3
ORACLE_BASE=
ORACLE_HOME=
PATH=
LD_LIBRARY_PATH=
.
.
Other Parameters
# /* End */
Master Script <-- Main Program that uses these parameters
File Name actions.sh
When the script is executed as ./actions,sh DB1 i want this to read all the parameters related to DB1 from the oraenv written between the pattern below
# /* DB1 */
.
...
..
# /* End */
create "export ORACLE_SID .." etc...
Solution
DB=DB1
for LINE in `sed -n '/ '${DB}' /,/ End /p' oraenv| grep -v ^#`; do
export "${LINE}"
done
The problem with the above code is some of the parameters in the oraenv file have $.. Like as below
# /* DB1 */
ORACLE_HOME=/temp
OH=$ORACLE_HOME
# /* End */
Expected result is
ORACLE_HOME=/temp
OH=/temp
Actual results
ORACLE_HOME=/temp
OH=$ORACLE_HOME
I have been struggling to resolve this issue for 4 hrs now... Any quick help is very appreciated.
Last edited by rajan_san; 11-06-2008 at 08:49 AM..
Reason: Forgot Content
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi,
I am trying to replace a URL by another URL in the SED command e.g.
cat dir/filename1 | sed -e 's/"http:\/\/*dtd"/"http:\/\/abc.def.com\/xyz.dtd"/' > dir/newfile.xml
But I need to pass a parameter to the SED command which should have the new url string i.e.... (2 Replies)
Discussion started by: dsrookie
2 Replies
2. Shell Programming and Scripting
Hi,
I need an awk command that would parse the below expression
Input Format
1 'Stmt1 ............................'2 'Stmt2 ............................'3 'Stmt3 ............................'4 'Stmt4 ............................'5 'Stmt5 ............................'6 'Stmt6... (1 Reply)
Discussion started by: rajan_san
1 Replies
3. Shell Programming and Scripting
Hi there, am trying to parse an Apache 'server' config file. A snippet of the config file is shown below:
.....
ProxyPassReverse /foo http://foo.example.com/bar
.....
.....
RewriteRule ^/(.*) http://www.example.com/$1
RewriteRule /redirect https://www.example1.com/$1
........ (7 Replies)
Discussion started by: jy2k7ca
7 Replies
4. Shell Programming and Scripting
Input:
hello hello
hello hello
monkey
donkey
hello hello
drink
dance
drink
Output should be:
hello hello
monkey
donkey
drink
dance (9 Replies)
Discussion started by: cola
9 Replies
5. Shell Programming and Scripting
Hi,
I am modifying a file with sed command. i want to make SCORE= blank in the file whereever SCORE=somevalue.
What will *$ do in the below command?
cat $file | sed 's/SCORE=.*$/SCORE=\r/g' > newfile
The last line is also missing in the new file. How to make SCORE='100' to SCORE=... (5 Replies)
Discussion started by: ashok.k
5 Replies
6. UNIX for Dummies Questions & Answers
Hi All,
I need help on the following req.
I am getting output of a command as follows:
16377612 total memory
3802460 used memory
2827076 active memory
681948 inactive memory
12575152 free memory
477452 buffer memory
I want to compute used... (1 Reply)
Discussion started by: mailsara
1 Replies
7. Shell Programming and Scripting
AWK Command parse a file based on string.
I am trying to write a shell script to parse a file based on a string and move the content of the file to another file.
Here is scenario.
File content below
Mime-Version: 1.0
Content-Type: multipart/mixed;
... (2 Replies)
Discussion started by: aakishore
2 Replies
8. Shell Programming and Scripting
Hi
I know sed and awk has options to give range of line numbers, but
I need to replace pattern in specific lines
Something like
sed -e '1s,14s,26s/pattern/new pattern/' file name
Can somebody help me in this....
I am fine with see/awk/perl
Thank you in advance (9 Replies)
Discussion started by: dani777
9 Replies
9. Shell Programming and Scripting
Hi,
In order to make our debugging easier in log files, I need this script.
My log file will be structured like this :
------Invoking myfile -param:start_time=1371150900000 -param:end_time=1371151800000 for 06/14/2013
<multiple lines here>
.....
- Step Sybase CDR Table.0 ended... (3 Replies)
Discussion started by: Lakshmikumari
3 Replies
10. Shell Programming and Scripting
Hi,
I have been stuck in this requirement where my file contains the below format.
20150812170500846959990854-25383-8.0.0
"ABC Report" hp96880
"4952"
20150812170501846959990854-25383-8.0.0 End of run
20150812060132846959990854-20495-8.0.0
"XYZ Report" vg76452
"1006962188"... (6 Replies)
Discussion started by: Chinmaya Kabi
6 Replies
LEARN ABOUT DEBIAN
ocf_heartbeat_oracle
OCF_HEARTBEAT_ORACLE(7) OCF resource agents OCF_HEARTBEAT_ORACLE(7)
NAME
ocf_heartbeat_oracle - Manages an Oracle Database instance
SYNOPSIS
oracle [start | stop | status | monitor | meta-data | validate-all]
DESCRIPTION
Resource script for oracle. Manages an Oracle Database instance as an HA resource.
SUPPORTED PARAMETERS
sid
The Oracle SID (aka ORACLE_SID). (unique, required, string, no default)
home
The Oracle home directory (aka ORACLE_HOME). If not specified, then the SID along with its home should be listed in /etc/oratab.
(optional, string, no default)
user
The Oracle owner (aka ORACLE_OWNER). If not specified, then it is set to the owner of file $ORACLE_HOME/dbs/*${ORACLE_SID}.ora. If this
does not work for you, just set it explicitely. (optional, string, no default)
ipcrm
Sometimes IPC objects (shared memory segments and semaphores) belonging to an Oracle instance might be left behind which prevents the
instance from starting. It is not easy to figure out which shared segments belong to which instance, in particular when more instances
are running as same user. .sp What we use here is the "oradebug" feature and its "ipc" trace utility. It is not optimal to parse the
debugging information, but I am not aware of any other way to find out about the IPC information. In case the format or wording of the
trace report changes, parsing might fail. There are some precautions, however, to prevent stepping on other peoples toes. There is also
a dumpinstipc option which will make us print the IPC objects which belong to the instance. Use it to see if we parse the trace file
correctly. .sp Three settings are possible: .sp - none: don't mess with IPC and hope for the best (beware: you'll probably be out of
luck, sooner or later) - instance: try to figure out the IPC stuff which belongs to the instance and remove only those (default; should
be safe) - orauser: remove all IPC belonging to the user which runs the instance (don't use this if you run more than one instance as
same user or if other apps running as this user use IPC) .sp The default setting "instance" should be safe to use, but in that case we
cannot guarantee that the instance will start. In case IPC objects were already left around, because, for instance, someone mercilessly
killing Oracle processes, there is no way any more to find out which IPC objects should be removed. In that case, human intervention is
necessary, and probably _all_ instances running as same user will have to be stopped. The third setting, "orauser", guarantees IPC
objects removal, but it does that based only on IPC objects ownership, so you should use that only if every instance runs as separate
user. .sp Please report any problems. Suggestions/fixes welcome. (optional, string, default instance)
clear_backupmode
The clear of the backup mode of ORACLE. (optional, boolean, default false)
shutdown_method
How to stop Oracle is a matter of taste it seems. The default method ("checkpoint/abort") is: .sp alter system checkpoint; shutdown
abort; .sp This should be the fastest safe way bring the instance down. If you find "shutdown abort" distasteful, set this attribute to
"immediate" in which case we will .sp shutdown immediate; .sp If you still think that there's even better way to shutdown an Oracle
instance we are willing to listen. (optional, string, default checkpoint/abort)
SUPPORTED ACTIONS
This resource agent supports the following actions (operations):
start
Starts the resource. Suggested minimum timeout: 120.
stop
Stops the resource. Suggested minimum timeout: 120.
status
Performs a status check. Suggested minimum timeout: 5.
monitor
Performs a detailed status check. Suggested minimum timeout: 30. Suggested interval: 120.
validate-all
Performs a validation of the resource configuration. Suggested minimum timeout: 5.
methods
Suggested minimum timeout: 5.
meta-data
Retrieves resource agent metadata (internal use only). Suggested minimum timeout: 5.
EXAMPLE
The following is an example configuration for a oracle resource using the crm(8) shell:
primitive p_oracle ocf:heartbeat:oracle
params
sid=string
op monitor depth="0" timeout="30" interval="120"
SEE ALSO
http://www.linux-ha.org/wiki/oracle_(resource_agent)
AUTHOR
Linux-HA contributors (see the resource agent source for information about individual authors)
resource-agents UNKNOWN 03/09/2014 OCF_HEARTBEAT_ORACLE(7)