How do I pass a variable to awk?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How do I pass a variable to awk?
# 1  
Old 04-03-2007
How do I pass a variable to awk?

I have an awk statement where I Need to pass an environment variable but I cannot get it to work:

My evironment varible examples below:
$FILE1=/dev/fs/file.new
$FILE2=/dev/fs/file.old

Code below:

awk -F"|" '
BEGIN {
while( getline < "$FILE1" )
{ arr[$1]=1 }
}
arr[($1)] != 1 { print }
' $FILE2


I cannot hard code the file names into the awk statement. I need to apss the file name as a varibale. but my above awk is not reading $FILE1 as the value it is defined as in the environment.
# 2  
Old 04-03-2007
Code:
$FILE1=/dev/fs/file.new
$FILE2=/dev/fs/file.old

nawk -F'|' -v OFS='|' '
   NR==FNR { arr[$1]; next }
   arr[$1]
' $FILE1 $FILE2

# 3  
Old 04-03-2007
THank you for the reply.

Unfortunately I am running ina UNIX emulator WIndows Services for Unix. It does not ahve nawk. can this be done in awk?
# 4  
Old 04-03-2007
Quote:
Originally Posted by eja
THank you for the reply.

Unfortunately I am running ina UNIX emulator WIndows Services for Unix. It does not ahve nawk. can this be done in awk?
worth tryin', ain't it?
# 5  
Old 04-03-2007
I did after I sent the reply. Sorry should have thought before I typed.
# 6  
Old 04-03-2007
Quote:
Originally Posted by eja
I did after I sent the reply. Sorry should have thought before I typed.
and....? the verdict is....???
# 7  
Old 04-03-2007
Yes that would help. you can tell I am a newbie. Works great. I changed it slightly but it works.

awk -F'|' '
NR==FNR { arr[$1]=1; next }
arr[$1] !=1' $HOME/$WORK/$NewFile $HOME/$COMPARE/$OldFile > $HOME/$WORK/$NewFile.del

The above compares yesterdays file to todays and find deleted records.

Thanks very much for the help.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Pass shell Variable to awk

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)
Discussion started by: Ariean
8 Replies

2. Shell Programming and Scripting

pass an awk variable to kill

Does anyone know of a way to do something similar to this with awk and kill? I want to create the variable in awk and pass that variable to kill. ps -ef | grep -i chromium | awk '{$2=x}' | kill -9 $x 2>/dev/null (9 Replies)
Discussion started by: cokedude
9 Replies

3. UNIX for Dummies Questions & Answers

How to pass a variable from shell to awk

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)
Discussion started by: metaltree
2 Replies

4. Shell Programming and Scripting

ksh variable pass to awk

I'm trying to store the response from a nawk command inside of a ksh script. The command is: text=$(nawk -F: '$1 ~ /${imgArray}/ {print $2}' ${etcDir}/captions.txt) From what I can tell, the imgArray variable is not being expanding when it is inside the single quote ('). Is there something I... (4 Replies)
Discussion started by: meman1188
4 Replies

5. Shell Programming and Scripting

How to pass a Awk variable to another script

Read parameter from a text file with one line which stored the date value like 20080831; below is the awk command I used gawk -F, "{getline RunDate;print $RunDate" text file When print $RunDate, it display 20080831 Would like to pass this variable to another script to use but not... (6 Replies)
Discussion started by: cbauw
6 Replies

6. Shell Programming and Scripting

Is it possible to pass variable from awk to shell script

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)
Discussion started by: user_prady
3 Replies

7. UNIX for Dummies Questions & Answers

How to pass Shell script variable to awk

Hi, I have a shell script with an ambedded awk script. i need to pass a script variable to the awk script. Please help. Thanks in advance Himani (3 Replies)
Discussion started by: HIMANI
3 Replies

8. Shell Programming and Scripting

Pass script variable value to AWK

HI all, some more mistery about AWK, I hope you can help me out: 1) I have a normal ksh script and sometime I call awk command. I set some variables in the script and I would like to use them up within AWK as well. Unfortunately AWK seems to forget all the variable values outside of its own... (1 Reply)
Discussion started by: BearCheese
1 Replies

9. Shell Programming and Scripting

How to pass a variable to Awk ?

I am trying to pass 2 shell variable's ("START" and "END") define earlier in the script to this awk statement, but i can't seem to pass it on. PLs help. set START = xxxx set END = yyyy set selected_file = `awk '/$START/,/$END/' filename` (24 Replies)
Discussion started by: Raynon
24 Replies

10. UNIX for Dummies Questions & Answers

pass variable to awk

i would like to pass a variable to awk wherein the variable comes from external loop. i tried this... let x=0 until test $x -eq 32 do cat file | awk '{ print $1 , "Number" , $($x) }' >> output done thanks, (4 Replies)
Discussion started by: inquirer
4 Replies
Login or Register to Ask a Question