02-23-2009 03:46 PM
I am trying to understand the output of the below shell script line.
Test2=$(/usr/ucb/ps -xuww | sed -n '/[w]eblogic.Server/ s/.*weblogic.Name=\([^ ]*\) .*/\1/p')
I am running script in debug mode but not seeing any values in the field Test2 during execution.
Can someone explain me the above script snippet in detail ?
Solved! Go to Solution.
02-23-2009 03:55 PM
eg what do these give you:
/usr/ucb/ps -xuww | sed -n '/[w]eblogic.Server/ s/.*weblogic.Name=\([^ ]*\) .*/\1/p'
02-23-2009 05:08 PM
Well this isn't HP-UX (it looks like Solaris) but that aside your description says that there was nothing returned from the output after 'sed' was run.
The 'sed' looks for lines with "weblogic.Server". If found, the string following "weblogic.Name=" is captured (because of the encapsulating parentheses) and substituted (the '\1' expression without any blanks matched (the [^ ] portion.
02-23-2009 05:55 PM
This use of "[w]" for "w" is a standard trick so that the sed or grep doesn't find itself:
ps -ef | grep foo
This will find the process foo and the grep of foo (and any other uses of foo).
A better trick is to use not use grep:
UNIX95=EXTENDED_PS ps -f -C foo