awk unable to compare the shell variable


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers awk unable to compare the shell variable
# 1  
Old 03-23-2012
awk unable to compare the shell variable

Hi

Could anyone please help with Awk.

The below code prints the PID of the matching process with condition with $8 and $9
Code:
ps -ef |awk '($8~/proc/) && ($9~/rPROC2/) {print $2}'

Now i want to change the Constant PROC2 from Shell variable
PROC2 is already declared in shell variable SRVNAME

Code:
ps -ef |awk -v var=/r$SRVNAME/ '($8~/proc/) && ($9~$var) {print $2}
'

This is not displaying anything i have tried $var with var, ($(var)) ..etc but no use

any help is much appreciated

thanks
# 2  
Old 03-23-2012
awk

Hi,

Try this,

Code:
ps -ef |awk -v var="r$SRVNAME" '($8~/proc/) && ($9~var) {print $2}
'

we wont use $ Prefix for variable in awk unless thats a system variable(like $0,$1).

Cheers,
RangaSmilie
# 3  
Old 03-23-2012
Thanks Ranga

its not working ..
# 4  
Old 03-23-2012
try to cuddle your args with curly brackets: "r${SRVNAME}", for example.

Especially in string context, the shell won't see them without the curly brackets...if they're adjacent to other strings such as you have above...

Last edited by curleb; 03-23-2012 at 10:24 AM.. Reason: uh-duh...
# 5  
Old 03-23-2012
Thanks curleb

no use.. not working Smilie
# 6  
Old 03-23-2012
is $SVRNAME actually defined? What output ARE you getting?
# 7  
Old 03-23-2012
SVRNAME is the shell environment variable

Code:
ps -ef |awk -v var='/r${SRVNAME}/' '($8~/proc/ && $9~var) {print $2}'

Code:
ps -ef |awk -v var='/r${SRVNAME}/' '{print var}($8~/proc/ && $9~var) {print $2}'
the above code is displaying the value of SRVNAME .. i think the condition $9~var is not able to compute....
if i replace var with the value of SRVNAME then its working fine

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to compare each file in two directores by storing in variable

In the below bash I am trying to read each file from a specific directory into a variable REF or VAL. Then use those variables in an awk to compare each matching file from REF and VAL. The filenames in the REF are different then in the VAL, but have a common id up until the _ I know the awk portion... (15 Replies)
Discussion started by: cmccabe
15 Replies

2. Shell Programming and Scripting

Unable to compare to a previous value of a variable in a while loop for a file

Hello All, I'm working on a script that will actually read a file consisting of data like the below:(ReportID,Sub_reportID,Sub_reportName) 1,1,ABC 1,2,DEF 1,3,GHI 2,1,JKL 2,2,MNO 3,1,PQR I want to read the Sub Report details for a Report_ID using while loop and write these values into... (6 Replies)
Discussion started by: venkat_reddy
6 Replies

3. Shell Programming and Scripting

Unable to pass shell script variable to awk command in same shell script

I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist. diff=$1$2.diff id=$2 new=new_$diff echo "My id is $1" echo "I want to sync for user account $id" ##awk command I am using is as below cat $diff | awk... (2 Replies)
Discussion started by: Ashunayak
2 Replies

4. HP-UX

Unable to pass a space inside a variable shell scripting

Can anyone help me in solving this ? p=`date` e=`echo $p | awk '{print $2,$3}'` # echo $p Wed Aug 4 12:00:08 IST 2013 but when I am echoing the value of e it is giving me with one space. As shown below: # echo $e Aug 4 I need this value to be exact as found in... (6 Replies)
Discussion started by: Kits
6 Replies

5. Shell Programming and Scripting

awk arrays - compare value in second column to variable

Hello, I am trying to redirect files to a directory by using a config file. The config files is as such: xxxxxx,ID,PathToDirectory xxxxxx,ID2,PathToDirectory2 and so on... I have a variable that should match one of these IDs. I want to load this config file into an awk array, and... (2 Replies)
Discussion started by: jrfiol
2 Replies

6. Shell Programming and Scripting

awk conditional expression to compare field number and variable value

Hi, I'm trying to compare the value in a field to the value in a variable using awk. This works: awk '$7 == "101"'but this is what I want (and it doesn't work): value=101 awk '$7 == "$value"' Any help or insight on this would be great. Thanks in advance. (1 Reply)
Discussion started by: goodbenito
1 Replies

7. Shell Programming and Scripting

AWK help: how to compare array elements against a variable

i have an array call ignore. it is set up ignore=34th56 ignore=re45ty ignore=rt45yu . . ignore=rthg34 n is a variable. I have another variable that i read from a different file. It is $2 and it is working the way i expect. array ignore read and print correct values. in the below if... (2 Replies)
Discussion started by: usustarr
2 Replies

8. Shell Programming and Scripting

AWK help. how to compare a variable with a data array in AWK?

Hi all, i have a data array as follows. array=ertfgj2345 array=456ttygkd . . . array=errdjt3235 so number or elements in the array can varies depending on how big the data input is. now i have a variable, and it is $1 (there are $2, $3 and so on, i am only interested in $1). ... (9 Replies)
Discussion started by: usustarr
9 Replies

9. Shell Programming and Scripting

Unable to assign value to variable using awk coz of whitespace in value

Unix gurus, I have a file as below, which is basically the result set obtained from a sql query on an Oracle database. ID PROG_NAME USER_PROG_NAME -------- --------------- ---------------------------------------- 33045 INCOIN Import Items 42690 ... (3 Replies)
Discussion started by: sunpraveen
3 Replies

10. Shell Programming and Scripting

AWK - compare $0 to regular expression + variable

Hi, I have this script: awk -v va=45 '$0~va{print}' flo2 That returns: "4526745 1234 " (this is the only line of the file "flo2". However, I would like to get "va" to match the begining of the line, so that is "va" is different than 45 (eg. 67, 12 ...) I would not have any output. That... (3 Replies)
Discussion started by: jolecanard
3 Replies
Login or Register to Ask a Question