Using shell variables In awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Using shell variables In awk
# 8  
Old 08-23-2006
in the bourne shell it accepts the var and var2 but the error at the end is

awk: syntax error near line 1
awk: bailing out near line1

I think typeset was another feature not working...

I really hope this is a professor trick and not an assignment where I'm expected to both learn shell scripting and decode what is and not a real part of the behaviour...

thanks again
# 9  
Old 08-23-2006
also,

in my script I believe the first line

!#/bin/sh

is supposed to put me into the bourne shell???

It doesn't as I'm staying in tcsh
# 10  
Old 08-23-2006
Quote:
Originally Posted by nortypig
also,

in my script I believe the first line

!#/bin/sh

is supposed to put me into the bourne shell???

It doesn't as I'm staying in tcsh
Code:
!#/bin/sh

should be
Code:
#!/bin/sh

if you're running on Sun/Solaris.... try using 'nawk' instead of plain/old 'awk'
# 11  
Old 08-24-2006
ah my bad that was rushed typing I meant #! at the beginning lol... I nearly missed the bus to uni.

Yes using solaris, which they pointed out to me this morning. I got around the problem instead by simply piping the variables through from the beginning

echo var1 var2 | awk blah blah

it seems the simple ways are after all the most prone to success, I do have a tendency to run off and look for a function to easily do stuff instead of looking first at basic stuff like echo (of all things).

thanks for the nawk tip - I'll be avoiding awk for some time I'd expect or at least until my burnt fingers stop throbbing.

thanks again all for offering help and advice, greatly appreciated.
# 12  
Old 08-24-2006
I just got an email from the uni as to what the issue turned out to be... out of interest I will post it for the rest.

-------------------------------------------------------

Hi Stephen,

A quick google search found the problem you're having. From

http://www.grymoire.com/Unix/Awk.html

there are 3 "versions" of awk:

AWK - the original from AT&T
NAWK - A newer, improved version from AT&T
GAWK - The Free Software foundation's version

from the article:

"... all of AWK's features are in NAWK and GAWK. Most, if not all, of
NAWK's features are in GAWK. NAWK ships as part of Solaris. GAWK does
not. However, many sites on the Internet have the sources freely
available. If you user Linux, you have GAWK.

and

"... several UNIX vendors have replaced AWK with NAWK, and there are
several incompatibilities between the two."

So in asking your friends about this, they are no doubt using nawk or
gawk without realising, since it appears on their systems as awk.

On Solaris, nawk is a separate program to awk.

Your example code that fails with awk runs with nawk, since the
original awk doesn't support the "-v" command line parameter. I've
also checked with Dave about the problem you were having with the
percentage character on the end of a number, and again, nawk fixes
this problem.

Hope that's enough to get you going.

Cheers,

Tony
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using Shell variables in awk

Hi All, I have a file which I am reading and looking for "EXIT" statement. I want to insert ":JCWPROD" after each EXIT statement only if ":JCWPROD" doesn't exist. Here is the sample file : EXIT Testing EXIT tesing123 EXIT Desired file : EXIT :JCWPROD Testing EXIT :JCWPROD... (7 Replies)
Discussion started by: nua7
7 Replies

2. Shell Programming and Scripting

Passing awk variables to shell

Hi. I need to parse file and assign some values to variables, right now i do like below MYHOMEDIR=`awk '/Home/ {print $NF}' output.txt` MYSHELL=`awk '/Shell/ {print $NF}' output.txt` PRGRP=`awk '/Primary/ {print $NF}' output.txt` SECGRP=`awk '/Second/ {print $NF}' output.txt` In this... (10 Replies)
Discussion started by: urello
10 Replies

3. Shell Programming and Scripting

awk - take variables out to shell

Hi, How could we take the value of awk variables out to shell? I know the following methods 1. awk '{print $1}' < file | read a echo $a 2. a=`awk '{print $1}' < file` echo $a Please let me know if there are any other methods. Also, how do we take more than 1 variable value... (4 Replies)
Discussion started by: Thumban
4 Replies

4. UNIX for Dummies Questions & Answers

Passing Shell Variables to an awk command

Hello, I have two files File1 & File2. File1 76 135 136 200 250 345 .... File2 1 24 1 35 1 36 1 72 .... I want to get all the values form File2 corresponding to the range in File 1 and feed it to a program. Is the code below right? Can I pass shell variables to awk in this... (2 Replies)
Discussion started by: Gussifinknottle
2 Replies

5. Shell Programming and Scripting

AWK How to replace a field using 2 shell variables?

Hello everybody: I want to replace any field $2 of any file line (f.i. test.txt) matching $1 with a shell variable. $ cat test.txt F 0 B A H -12.33 Now I'm going to ask the value of variable B: $ SEARCHVAR=B $ OLDVAL=$(awk -v SEARCHVAR="$SEARCHVAR"... (4 Replies)
Discussion started by: basalt
4 Replies

6. Shell Programming and Scripting

Shell Variables & awk...Help Please

I apologize if this topic has been beaten to death here, but my limited searching skills did not throw up any results. Here's what I am trying to accomplish List all the files in a certain directory; assign the file names to an array which will be used later in the script. My script looks like... (2 Replies)
Discussion started by: kash80
2 Replies

7. Shell Programming and Scripting

Awk, shell variables

Hello, I've been trying to figure out how to use variables inside the AWK command and use it back in the korn shell sript. in my script I have lots of awk commands like this grep Listen /etc/ssh/sshd_config | \ awk '{ if ($2 == "22" ) print "OK"; else print "not OK" }' ... (3 Replies)
Discussion started by: mirusko
3 Replies

8. Shell Programming and Scripting

Using two shell variables in single AWK statement

meas is a shell variable, and this works perfectly fine for me: awk -v var=$meas -F, '$1==var' /abcd/efgh.txt > temp1.csv However, i want to introduce another shell variable, named, defnfile in the statement, in place of hardcoded path for efgh.txt like: awk -v var=$meas -F, '$1==var'... (3 Replies)
Discussion started by: indianjassi
3 Replies

9. Shell Programming and Scripting

Accessing Shell Variables in awk or sed

Hello, I wonder if it is possible to pass and use variables from shell environment into sed or awk. I am trying to achieve something similar to the following using sed or awk: var=some_regular_expression grep "$var" filename # Will extract lines from filename The following code,... (3 Replies)
Discussion started by: nasersh
3 Replies

10. Shell Programming and Scripting

Modify shell variables with AWK

Dear Folks, I have a command output something like: And I want to store PIN0 and SIG0 in two shell variables, now I do a double awk: PIN=`gsmctl -d /dev/ttyS0 pin sig | awk '/PIN0/ { print $2}'` SIG=`gsmctl -d /dev/ttyS0 pin sig | awk '/SIG0/ { print $2}'` It's possible to... (4 Replies)
Discussion started by: Santi
4 Replies
Login or Register to Ask a Question