How to pass a variable to Awk ?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to pass a variable to Awk ?
# 1  
Old 09-15-2006
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`
# 2  
Old 09-15-2006
supposedly, the -v switch is used to passed in shell variables
please check your man page.
# 3  
Old 09-15-2006
try
shellvar1=xxx
shellvar2=zzz

whatever shell stuff | awk '
{
awkvar1="'$shellvar1'" # This is shell var 1
awkvar2="'$shellvar2'" # This is shell var 2

do your awk thing

}'

Note the double and single quotes....
# 4  
Old 09-15-2006
Quote:
Originally Posted by Raynon
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`
Try This

Quote:
awk -v ST=$START -v EN=$END '/ST/,/EN/' filename

Gaurav
# 5  
Old 09-15-2006
Quote:
Originally Posted by gauravgoel
Try This




Gaurav
awk -v ST=$START -v EN=$END '/ST/,/EN/' filename ==> can't work , but thanks anyway

i found the solution ->
set selected_file = `awk '/'"$START"'/,/'"$END"'/' filename`
# 6  
Old 09-15-2006
Quote:
Originally Posted by Raynon
awk -v ST=$START -v EN=$END '/ST/,/EN/' filename ==> can't work , but thanks anyway

i found the solution ->
set selected_file = `awk '/'"$START"'/,/'"$END"'/' filename`
why its not working? can u paste the output of this command.

also note that if u are on Solaris use nawk instead of awk
# 7  
Old 09-15-2006
Quote:
Originally Posted by Raynon
awk -v ST=$START -v EN=$END '/ST/,/EN/' filename ==> can't work , but thanks anyway

i found the solution ->
set selected_file = `awk '/'"$START"'/,/'"$END"'/' filename`
Quote:
Originally Posted by gauravgoel
why its not working? can u paste the output of this command.

also note that if u are on Solaris use nawk instead of awk
it doesn't work because 'ST' and 'EN' are taken as literal strings and not as 'variables':
Code:
awk -v ST=$START -v EN=$END '$0 ~ ST , $0 ~ EN' filename

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. UNIX for Dummies Questions & Answers

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 } } arr != 1 { print } '... (12 Replies)
Discussion started by: eja
12 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