Visit Our UNIX and Linux User Community


Better use of awk command?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Better use of awk command?
# 1  
Old 10-23-2009
Better use of awk command?

Good morning,

I am trying to figure out how to filter out the ora_pmon part of the results below using a command and so far I have not been able to figure it out.

Code:
leviathan:/lcl/apps/Tivoli/netcool/omnibus/bin>ps -ef | grep ora_pmon
  tivoli  8105 15855   0 09:28:38 pts/1       0:00 grep ora_pmon
  oracle 20086     1   0   Oct 12 ?          11:15 ora_pmon_entp_stdby
  oracle 24321     1   0   Oct 07 ?          17:20 ora_pmon_ot1p_stdby
  oracle 13929     1   0   Oct 13 ?           9:52 ora_pmon_lawp_stdby
leviathan:/lcl/apps/Tivoli/netcool/omnibus/bin>

This seems to be as close as I have been able to get...
Code:
leviathan:/lcl/apps/Tivoli/netcool/omnibus/bin>ps -ef | grep ora_pmon | grep -v grep | awk '{print $NF}'
ora_pmon_entp_stdby
ora_pmon_ot1p_stdby
ora_pmon_lawp_stdby

The results I am looking for should look like this...
Code:
entp_stdby
ot1p_stdby
lawp_stdby

Any ideas on how to dump the ora_pmon_ part?

Thank you in advance.
# 2  
Old 10-23-2009
Try this....

>ps -ef | grep ora_pmon | grep -v grep | awk '{print $NF}' | sed 's/ora_pmon_//g'
# 3  
Old 10-23-2009
Code:
ps -ef | grep ora_pmon | grep -v grep | sed "s/.*_pmon_//"

Code:
entp_stdby
ot1p_stdby
lawp_stdby

# 4  
Old 10-23-2009
stay with awk:
Code:
ps -e -o comm | nawk -F_ '/^ora_/ {$1=$2="";gsub("^ *", "");print}'
OR
ps -e -o comm | nawk -F'ora_pmon_' 'NF>1 {print $2}'

# 5  
Old 10-23-2009
Another one:

Code:
ps -ef | awk '/ora_pmon/{sub(".*ora_pmon_","");print}'

# 6  
Old 10-23-2009
Yep that worked perfectly.

Code:
leviathan:/lcl/apps/Tivoli/netcool/omnibus/bin>ps -e -o comm | nawk -F'ora_pmon_' 'NF>1 {print $2}'
entp_stdby
ot1p_stdby
lawp_stdby

If you don't mind could you kinda go through in detail what each part of that is doing? I am really new to it all and want to learn from it.

Thanks.
# 7  
Old 10-23-2009
Quote:
Originally Posted by LRoberts
Yep that worked perfectly.

Code:
leviathan:/lcl/apps/Tivoli/netcool/omnibus/bin>ps -e -o comm | nawk -F'ora_pmon_' 'NF>1 {print $2}'
entp_stdby
ot1p_stdby
lawp_stdby

If you don't mind could you kinda go through in detail what each part of that is doing? I am really new to it all and want to learn from it.

Thanks.
Code:
ps -e -o comm

'man ps' and searching for 'comm' yields:
Code:
     comm  The name of the command being executed (argv[0] value)
           as a string.

Code:
nawk -F'ora_pmon_' 'NF>1 {print $2}'

Define the Field Separator (FS) as a string 'ora_pmon_' - that how ALL your searched for entries start with.
If the the output of 'ps -e -o comm' has more than ONE field (records containing 'ora_pmon_' as a separator) - it means it's a 'searched for' record/line -> then output the SECOND field - the field FOLLOWING the FIRST 'ora_pmon_' separator.

HTH
NOTE: Netcool, eh? Nice - welcome to the wonderful work of Fault Management.

Previous Thread | Next Thread
Test Your Knowledge in Computers #392
Difficulty: Medium
The Linux Standard Base was formed in 2001 as an attempt to standardize the internal structures of Linux-based systems for increased compatibility.
True or False?

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Pass awk field to a command line executed within awk

Hi, I am trying to pass awk field to a command line executed within awk (need to convert a timestamp into formatted date). All my attempts failed this far. Here's an example. It works fine with timestamp hard-codded into the command echo "1381653229 something" |awk 'BEGIN{cmd="date -d... (4 Replies)
Discussion started by: tuxer
4 Replies

2. Shell Programming and Scripting

Multiple command execution inside awk command during xml parsing

below is the output xml string from some other command and i will be parsing it using awk cat /tmp/alerts.xml <Alert id="10102" name="APP-DS-ds_ha-140018-componentFailure-S" alertDefinitionId="13982" resourceId="11427" ctime="1359453507621" fixed="false" reason="If Event/Log Level(ANY) and... (2 Replies)
Discussion started by: vivek d r
2 Replies

3. Shell Programming and Scripting

awk command to compare a file with set of files in a directory using 'awk'

Hi, I have a situation to compare one file, say file1.txt with a set of files in directory.The directory contains more than 100 files. To be more precise, the requirement is to compare the first field of file1.txt with the first field in all the files in the directory.The files in the... (10 Replies)
Discussion started by: anandek
10 Replies

4. Shell Programming and Scripting

awk command in script gives error while same awk command at prompt runs fine: Why?

Hello all, Here is what my bash script does: sums number columns, saves the tot in new column, outputs if tot >= threshold val: > cat getnon0file.sh #!/bin/bash this="getnon0file.sh" USAGE=$this" InFile="xyz.38" Min="0.05" # awk '{sum=0; for(n=2; n<=NF; n++){sum+=$n};... (4 Replies)
Discussion started by: catalys
4 Replies

5. Shell Programming and Scripting

awk command for simple join command but based on 2 columns

input1 a_a a/a 10 100 a1 a_a 20 200 b1 b_b 30 300 input2 a_a a/a xxx yyy a1 a1 lll ppp b1 b_b kkk ooo output a_a a/a 10 100 xxx yyy (2 Replies)
Discussion started by: ruby_sgp
2 Replies

6. UNIX for Dummies Questions & Answers

Basic awk question...getting awk to act on $1 of the command itself

I have a script problem that I am not able to solve due my very limited understanding of unix/awk. This is the contents of test.sh awk '{print $1}' From the prompt if I enter: ./test.sh Hello World I would expect to see "Hello" but all I get is a blank line. Only then if I enter "Hello... (2 Replies)
Discussion started by: JasonHamm
2 Replies

7. Shell Programming and Scripting

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-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121 Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies

8. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 Replies

Featured Tech Videos