I think it can not be done with -v option this way. Wat awk sees is a 9-character string $2 == "2" and it tests if it not null or an empty string. This is the case, so it will always evaluate to true. There is no eval mechanism like in the shell so that this somehow gets re-interpreted.
To see that it does not get evaluated: you get the same result with a condition that would normally lead to an error message (divide by zero):
(The $-sign at the beginning of the lines is not part of the code and represents the command prompt)
--
What you could do is pass a regex string, like so:
or a value:
-- Or, do not use the -v option and let the shell put things in place before awk interprets:
Last edited by Scrutinizer; 07-22-2016 at 06:45 AM..
This User Gave Thanks to Scrutinizer For This Post:
Hello experts,
can I return a value from gawk to a shell script ?
My script as follows,
#Here I want the num value to shell script so that I can use later
gawk '
{
split($0,num,",");
print num
}'
gawk -v no=$number '{print no}'
file1
... (3 Replies)
Hi
I need to pass an array to Awk script from Shell. Can you please tell how to do it? How to pass this array add_ct_arr to an awk script or access it in awk?
i=1
while ;
do
add_ct_arr=$(echo ${adda_count} | awk -v i=$i -F" " '{print $i;}')
echo ${add_ct_arr}
... (1 Reply)
I know that we can call system command to execute shell script in awk.
but it does not return the result of the command executed , but only returns
the value of the command executoin status ( 1/0 --> failure / success).
Could anyone let me know how to solve this problem. (9 Replies)
How would I get folders owned by specific users.. I want to pass users as a shell variable to awk.
drwxr-x--x 3 user1 allusers 512 Oct 14 2006 946157019/
drwxr-x--x 3 user2 allusers 512 Mar 9 2008 94825883/
drwxr-x--x 3 user3 allusers 512 Mar 9 2008 948390501/
... (3 Replies)
I know this topic has been dealt with previously, but the solutions I've seen don't work for me apparently.
I need to pass a variable defined in the shell to one in awk:
$ echo $var1
3
$ cat aaa
aaa 1
bbb 2
ccc 3
ddd 4
eee 5I've tried this, without success:
$ awk... (2 Replies)
Why does this work
for myfile in `find . -name "R*VER" -mtime +1`
do
SHELLVAR=`grep ^err $myfile || echo "No error"`
ECHO $SHELLVAR
done
and outputs
No error
err ->BIST Login Fail 3922 err
No error
err ->IR Remote Key 1 3310 err
But... (2 Replies)
Hi, all
suppose I have following myfile (delimited by tab)
aa bb
cc dd
ee ffand I have following awk command:
awk 'BEGIN{FS="\t"}{AwkArrayVar_1=$1;AwkArrayVar_2=$2};END{for(i=0; i<NR; i++) print i, AwkArrayVar_1, AwkArrayVar_2,}' myfileMy question is: how can I assign the awk array... (7 Replies)
Hello,
May i please know how do i pass the shell variable to awk expression in the below script. It is returning null
#!/bin/bash
UNINUM=720922
UNINUM_DESC=`awk -F'|' -v UNINUM=$2 '/UNINUM/ {print $4}' datafile`
echo $UNINUM_DESC
datafile
4|First|720194|asdasdad
4|First|720735|asdasdsa... (8 Replies)
Hi,
I am in critical need of help, Thanks a ton for your help.
I need to know how to pass the shell argument into nawk code in AIX. so that my file gets passed into that awk script and it can execute it part.
To be detail, i have more than 100 files and in those files a particular field... (6 Replies)
Hi,
Please need to print the Rej variable outsite the awk script which is given below...please advised how to achieve it.
#!/bin/bash
echo "Enter DMU Pipe delimited File name for the Feed to be validated"
read DMU_File
echo "Enter Pre-DMU File name for the Feed"
read Predum_file
... (3 Replies)