Visit Our UNIX and Linux User Community


Parameter to AWK


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parameter to AWK
# 15  
Old 07-24-2009
peterro,

Thanks in advance since I won't be able to have access to a UNIX machine until Monday. I'll try your solutions on Monday and let you know.

Thanks once again.
# 16  
Old 07-25-2009
Quote:
Originally Posted by sacguy08
I used set as below which is working fine.

Code:
$ set -- a b c d
$ echo $1
a
$ echo $2
b
$

But instead of using
Code:
$ echo $3

Is there a way of using it as below?
Code:
$ z=3
$ echo $z

Expected output is 'c' instead of '3'

The reason why I want to do this is like I mentioned before the number of arguements may vary in my input and one of my requirement is to get the last - 1 parameter.
For example
Code:
$ set -- -parm a=b -parm c=d -parm e=f \\
$ echo $1
-parm
$ echo $4
c=d
$ echo $7
\

This works fine when $4 or $1 is an arguement to echo.

But I need the 6th parameter of set which is e=f and this position varies based on my input line. Sometimes it might be 7th position as shown in above example and sometimes it may be 3rd.
Try this:
Code:
set a b c d e f g h i
count=$#
lastone=`echo ${*:$count}`

echo $lastone
Output => i

---------- Post updated at 11:43 PM ---------- Previous update was at 10:17 PM ----------

Quote:
Originally Posted by edidataguy
Try this:
Code:
set a b c d e f g h i
count=$#
lastone=`echo ${*:$count}`

echo $lastone
Output => i
Code:
user_text="first second third fourth"
echo ${user_text##* }

This is more simple

Did not realize you needed the last but one. Try this:
Code:
set aa bb cc dd ee ff gg hh ii
echo $* | sed 's/.* \([^ ]*\) [^ ]*$/\1/'


Last edited by edidataguy; 07-25-2009 at 07:26 PM..
# 17  
Old 07-27-2009
Thanks peterro and edidataguy.

It's working except for the below code given by edidataguy.

Code:
$ set a b c d e f g h i
$ count=$#
$ lastone=`echo ${*:$count}`
ksh: ${*:$count}: 0403-011 The specified substitution is not valid for this command.

Anyways my issues are solved. Thanks to everyone. I appreciate your help.
# 18  
Old 07-27-2009
Quote:
Originally Posted by sacguy08
Thanks peterro and edidataguy.

It's working except for the below code given by edidataguy.

Code:
$ set a b c d e f g h i
$ count=$#
$ lastone=`echo ${*:$count}`
ksh: ${*:$count}: 0403-011 The specified substitution is not valid for this command.

Anyways my issues are solved. Thanks to everyone. I appreciate your help.
I think there is a version issue. It works fine for me.
Please post your final code for every one to see.

Previous Thread | Next Thread
Test Your Knowledge in Computers #66
Difficulty: Medium
IT and cybersecurity risk management is based on the intersection of these three areas, criticality, vulnerability, and threat.
True or False?

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

Featured Tech Videos