Arguments to awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Arguments to awk
# 1  
Old 10-15-2010
Arguments to awk

I have an awk script where I pass some arguments

For example I will call awk in this fashion

Code:
awk -v anomaly=nAmon/pAnom -v aloc=zmin/ztran/zmax -v modeldepth=modeldepth

My problem is that I want to have the option to pass the variable anomaly in two ways.

Either using

Code:
-v anomaly=nAmon/pAnom

or using

Code:
-v anomaly=amon

Thus I need to distinguish what the user has inputted and then do the appropriate stuff depending on which version he's using.
# 2  
Old 10-15-2010
Why don't you use this form:
Code:
# a=10
# echo "12345" | awk '{a="'${a}'"; print a}'
10

Regards.
# 3  
Old 10-15-2010
Can't understand what you wrote

---------- Post updated at 08:36 AM ---------- Previous update was at 08:34 AM ----------

For example I might have -v anomaly=-6 or -v anomaly=+6 or -v anomaly=-6/+6

If I have just -6 or +6, I set anomaly=-6 or anomaly=+6 (depends on the value)

If I have -6/+6 I set nAnom=-6 and pAnom=+6
# 4  
Old 10-15-2010
I meant you don't need to use the awk "-v" option to set a variable, just set it in your environment and assign inside awk:
Code:
# a=10
# echo "" | awk '{a="'${a}'"; print a}'
10

# 5  
Old 10-15-2010
I need to, as I want the user to pass the values through and then do something with the values he supplies.
# 6  
Old 10-15-2010
Code:
# oAwk="-6/+6"
# echo "" | awk '{anomaly="'${oAwk}'"; print anomaly}'
-6/+6

If you want a variable to have two values at the same time, you can use an array:
Code:
oAwk="-6/+6"
echo "" | awk -v nanomaly="${oAwk}" '{split(nanomaly, anomaly, /\//); print anomaly[1]}'
-6
echo "" | awk -v nanomaly="${oAwk}" '{split(nanomaly, anomaly, /\//); print anomaly[2]}'
+6

# 7  
Old 10-15-2010
How would I be able to distinguish whether the use used

Code:
-v anomaly=-6/+6

or just one value such as

Code:
-v anomaly=-6

or

Code:
 -v anomaly=+6


Last edited by kristinu; 10-15-2010 at 12:14 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk command line arguments not taking

# more minusf.awk #!/bin/awk -f BEGIN { FS=":"; } { if ( $2 == "" ) { print $1 ": no password!"; } } # ./minusf.awk aa aa aa aa awk: can't open aa (6 Replies)
Discussion started by: sri.phani
6 Replies

2. Shell Programming and Scripting

Need to pass shell arguments into Nawk/awk

Hi, I am in critical need of help, Thanks a ton for your help. I need to know how to pass the shell argument into nawk code in AIX. so that my file gets passed into that awk script and it can execute it part. To be detail, i have more than 100 files and in those files a particular field... (6 Replies)
Discussion started by: Selva_2507
6 Replies

3. Shell Programming and Scripting

Using and passing arguments to shuf within awk

Hello all, I would like to output a random number within a range for every line using awk and shuf. I think I'm almost there, but I don't know how to pass arguments to shuf within my awk script: Input 1 12190 12227 1 12595 12721 1 13403 13639 1 14362 14829 1 14970 15038 awk: awk '{... (2 Replies)
Discussion started by: DerSeb
2 Replies

4. Shell Programming and Scripting

awk with arguments

Hi guys, I work in ksh and have a file in the following format: T 18:30 10 23:00 ts1632back W 18:30 10 23:00 ts1632back M 19:30 0 0 tschkback_px1632 T 19:30 0 0 tschkback_px1632 I am using the following 'awk' command to substitute field/colomn 2 across the file if field/colomn 5 is set to... (6 Replies)
Discussion started by: aoussenko
6 Replies

5. Shell Programming and Scripting

Passing arguments to awk

I have an awk script below which I call using for example awk -f ../../A-Scripts/select-model.awk iterations.txt 16x12 10 I want to be able to use it in a different way like this awk -f ../../A-Scripts/select-model.awk iterations.txt nxz=16x12 iter=10 or awk -f... (1 Reply)
Discussion started by: kristinu
1 Replies

6. Shell Programming and Scripting

Pass command line arguments to awk

I am trying to pass max as a sommand line argument when I call awk. Made the modification in the BEGIN but it is not working I'm getting an error as below: awk: txsrx.awk:82: (FILENAME=jcd.tx FNR=4161) fatal: cannot open file `40' for reading (No such file or directory) Somehow it... (2 Replies)
Discussion started by: kristinu
2 Replies

7. Shell Programming and Scripting

awk with arguments

Hi I have a file which looks like this: $ cat my_file f1acc: 1398 f1pdb: 495 f1trn: 1288 f1txn: 7326 t1trn: 8241 t1txn: 8292 p080$ I am trying to "egrep" a certain pattern from this file and put a value of a variable in front of each line, for example: pnum=555 cat my_file |... (5 Replies)
Discussion started by: aoussenko
5 Replies

8. Shell Programming and Scripting

How do we pass multiple arguments into awk

How do we pass multiple arguments into awk : name=john age=12 now i have to pass both age and name into awk.. how to do it? like : awk -v var=... (4 Replies)
Discussion started by: abhinav192
4 Replies

9. Shell Programming and Scripting

awk arguments

Having arguments as follows There are totally 210 error codes. I have already grep custom logs as follows checkerr.sh A awk '$1 == 0 || $1 ==1{print $0}' rep1.txt > success.log B awk '$1 == 84 || $1 ==85 || $1==86 {print $0}' rep1.txt > MediaErr.log i need all the other 205 error... (6 Replies)
Discussion started by: karthikn7974
6 Replies

10. Shell Programming and Scripting

How to print arguments along with spaces using awk

Hi All, file_1.txt contains aaa bbbb hhhh vvvvv mmmmm iiiii What i want is to search for the first coloumn of each line using awk.i.e as below: awk '/aaa/ {printf(<>)}' file_1.txt The print part (<>) should contain all the values(or coloumns ) in the particular line(here it... (8 Replies)
Discussion started by: jisha
8 Replies
Login or Register to Ask a Question