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 #488
Difficulty: Medium
Some languages are interpreted, not compiled, and the source code is contained in a file usually referred to as a text-based assembly unit.
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