Parameter to AWK


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parameter to AWK
# 1  
Old 07-22-2009
Parameter to AWK

Hi,

I need help with AWK. Here is the issue that i'm facing.

I have a variable in KSH script set as below.
user_text="first second third fourth"

My Requirement is to print 'first', 'second', 'third' or 'fourth' based on setting a variable

Example 1
user_text="first second third fourth"
var=1
echo $user_text | awk '{print $var}'

Ouput expected:
first

Example 2
user_text="first second third fourth"
var=3
echo $user_text | awk '{print $var}'

Ouput expected:
third

I'm new to AWK. I would be grateful if you could reply with correct AWK syntax. Your help is highly appreciated.

Thanks for your time.
# 2  
Old 07-22-2009
Hello!

Per forum rules, and the benefit of all users, please search the forums before posting a question.

There're plenty of threads on parameter+awk subject.

You can easily search the forums using our internal Google search engine or our advanced internal search engine. You can also search our huge UNIX and Linux database by user generated tags or search the database for unanswered questions and provide an answer.

Thank you.

The UNIX and Linux Forums
# 3  
Old 07-22-2009
you need array not awk, please refer to your shell array assignment

Code:
-bash-3.2$ x=(first second third fourth)
-bash-3.2$ echo ${x[0]}
first
-bash-3.2$ echo ${x[1]}
second
-bash-3.2$ echo ${x[2]}
third
-bash-3.2$ echo ${x[3]}
fourth
-bash-3.2$

# 4  
Old 07-22-2009
Code:
 
set first second third fourth
echo $1 $4
Output==> first fourth

# 5  
Old 07-22-2009
Quote:
Originally Posted by edidataguy
Code:
 
set first second third fourth
echo $1 $4
Output==> first fourth

wow i didnt know that.. what happens if i use this to a script?
what happens to $1 if i have argumented script?
# 6  
Old 07-23-2009
Coming back to original question, how to achieve this by passing variable to awk.
Code:
user_text="first second third fourth"
var=1
echo $user_text | awk -v awk_var="$var" '{print $awk_var}'



---------- Post updated at 09:40 AM ---------- Previous update was at 09:39 AM ----------

Quote:
Originally Posted by ryandegreat25
wow i didnt know that.. what happens if i use this to a script?
what happens to $1 if i have argumented script?
$1 will be overwritten...
to avoid that, first store the passed argument and then use set.
# 7  
Old 07-23-2009
Issue still remains

Hello Everyone,

Thanks for your replies. I tried set and array solutions but it didn't work.

I'm using ksh in AIX 5.3

Here is my input string
-parm a=b -parm c=d -parm e=f -parm g=h \

Note: At the end of each line in my input file there is a Back slash charater.

My input string can be of variable length. For example it can be
-parm a=b -parm c=d \
or
-parm a=b -parm c=d -parm e=f \

My requirement is to check for values for each -parm and do a particular action.

For example if my input string is
-parm a=b -parm c=d -parm e=f -parm g=h \

If the last -parm value is g=h then I need to set a variable X to 1.
If the 2nd -parm value is a=b then I need to set a variable Y to 1.
That is I need to read the value one at a time from my input string and perform a particular action.

I thought it would be possible in awk and hence my original question.

Your different approachs to this problem or solutions to this problem is highly appreciated.

Thanks for your time.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Does awk have parameter substitution?

Can I specify a default value to a variable in AWK like BASH in one statement using parameter substitution? BASH example: argument=${$1-"default if empty"} (BASH) I know I can do: argument=$1; sub ( "^$", "default if empty", argument) (AWK) Mike (13 Replies)
Discussion started by: Michael Stora
13 Replies

2. Shell Programming and Scripting

Passing parameter to awk command

Hi, I have a situation where I need to create a SQL statement using Unix script for each value in first field (ID). The file looks like this. Id,TARGET_FIELD_NAME,SOURCE_FIELD_NAME 1,Test_Rate,Field1 1,Test_Factor,Field2 1,Test_Size,Field3 2,Test_Rate,Field4 2,Test_Factor,Field5... (3 Replies)
Discussion started by: kiranredz
3 Replies

3. Shell Programming and Scripting

Parameter not accepting in awk

In below script parameterwhich i am passing to awk function is not working.Not sure why its not accepting parameter.Please tell me how to pass parameter to the awk function.Please check the below script. #!/bin/ksh dummy_file=/etlapps/dev/data/sub_servicer_data/ScriptLogs/emp.txt fields=5... (2 Replies)
Discussion started by: katakamvivek
2 Replies

4. Shell Programming and Scripting

awk: replace with script parameter

Hi var=0001 I want to replace 2nd field of file with variable var in file sample.txt Please suggest with awk. dont want to use awk -v option. pseudo code : something like this. var=0001 awk '{ 12193 /var } {print $0 }' sample.txt (2 Replies)
Discussion started by: theshashi
2 Replies

5. Shell Programming and Scripting

Passing a parameter to AWK

Hi All, I am trying to pass a parameter to AWK on my KSH shell prompt as below. var1=2 echo $var1 awk -v var2=${var1} '{print var2}' testfile.txt I am passing the input file (testfile) to awk to get some o/p. It is having 10 records. When I run AWK, it is throwing the following errors... (1 Reply)
Discussion started by: Raamc
1 Replies

6. Shell Programming and Scripting

awk pass $LOGDIR parameter

hi guys i need your help , i wrote one script which is as below #!/bin/ksh ########################################################### LOGDIR=/export/home/xyz/logs EMAILFile=$LOGDIR/xxs_email.log BOX=$(uname -a | awk '{print $2}') awk '{if ($4 >= 30) {print $1 " " $3 " HAS LAG of "... (1 Reply)
Discussion started by: tapia
1 Replies

7. Shell Programming and Scripting

using awk != parameter

Hi all, I am having the below file log.txt 1 aaa 111 @@@ 2 bbb 222 ### 14 ccc 333 $$$ using awk '$1!=1 || $1!=14 {print $1" " $2}' log.txt gets the below output 1 aaa 2 bbb 14 ccc (4 Replies)
Discussion started by: karthikn7974
4 Replies

8. Shell Programming and Scripting

awk parameter

How to pass a parameter in system function e.g system(script parameter) i want to run a shell script along with a parameter (5 Replies)
Discussion started by: alokmits
5 Replies

9. Shell Programming and Scripting

awk/input parameter

Hi, My script takes in one input parameter($1-email id) on the command line... The script contains something like this... awk '$1 == 400' abc.log >def.log mail -s subject $1 <def.log abc.log looks something like this... 300 222 330 123 445 400 098 890 727 663 How do i make the... (3 Replies)
Discussion started by: wannalearn
3 Replies

10. UNIX for Dummies Questions & Answers

PASS parameter to AWK

Hi, Can i pass a parameter(not a file name) as a parameter to a awk program? eg; $awk -f test 1 2 3 here test is the filename...and 1,2,3 are the i/p parameters? thank you:-) (2 Replies)
Discussion started by: unisam
2 Replies
Login or Register to Ask a Question