Visit Our UNIX and Linux User Community


Using shell variables In awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Using shell variables In awk
# 1  
Old 08-23-2006
Using shell variables In awk

Oh its not my day for syntax...

Code:
cat gzipsize.txt | awk '{print "echo",$1,$2} > master.txt

I have read a lot about the awk -v but haven't been able to get it to work. I have a variable in my script and I'm looking just to push it into the awk after the $2 (or anywhere would do)!!!

Every example of this has led me down a merry road and I'm wondering if anyone can actually explain this finer point to me?

let's say there is a previous

var=filecontent
# 2  
Old 08-23-2006
Question

I have found that the server I'm operating on has some anomolies in its implementation of UNIX so if I could possibly ask a favour of someone out there with awk skills...

would it be possible to write a small piece of example code 'which works' where a similar variable is imported and used in an awk function?

i ask this because I have every feeling that once again this code will work on every other unix installation and not the one we have here... if so I need to sort it out with the sys admin asap

but without some real working code as an example I won't have a chance of explaining.

So could anyone possibly run a working example past me?

possibly

var=varname

echo 10 12 | awk 'BEGIN {VAR=var}{print "something",$1,$2,$VAR}'


or something similar?
# 3  
Old 08-23-2006
I think you want this:


Code:
var="hello"
var2="myname"

echo $var2 | awk -v variable=${var} '{ print variable,$1}'

Output:
hello myname

your code shoule be

echo 10 12 | awk -v VAR=${var} '{print "something",$1,$2,VAR}'

Output:
something 10 12 hello
# 4  
Old 08-23-2006
MySQL

thanks vish, its as I feared then and once again I find I've wasted a day because our beloved server is set up wrong... Smilie

my output from your code is

var=”hello”: command not found
var=”myname”: command not found
var2: undefined variable

and the output from your improvement on my line is

var: undefined variable

So I've sat here another full day trying to get things to work because our sys admin has rocks in his head... very sad and frustrating indeed.

thanks a million for that snippet of code, without which I couldn't properly explain the anomoly to the tech support and sys admins - so greatly appreciated.

i think i need to go to bed now.
# 5  
Old 08-23-2006
what shell are you using? Most of the examples you got used /usr/bin/sh or /usr/bin/bash or /usr/bin/ksh.
Please show output from:
Code:
usr/bin/echo "$SHELL"
usr/bin/echo "$0"

# 6  
Old 08-23-2006
these are csh/tcsh responses

Quote:
Originally Posted by nortypig
var=”hello”: command not found
var=”myname”: command not found
var2: undefined variable

and the output from your improvement on my line is

var: undefined variable
# 7  
Old 08-23-2006
MySQL

I've had my brother in law look at this - its based around a university assignment... there are some basic stuff being fooled with like not being able to set variables

var="troy"

but i can put them in a text file and make them variables with a cat into the variable

anyway we've experimented and it appears the shell has been limited for some reason... in ksh

var="troy"

has no problem

so sorry for the bother everyone - this one seems to be something I need to take back to the lecturers. I've found ways to get around the limitations of what's going on but the time factor is killing me from the business end... had to knock back a good contract yesterday.

thanks for the help, it was crucial to my understanding and invaluable to my being able to successfully get past the hurdles.

no doubt i will have more questions on the weekend Smilie

Previous Thread | Next Thread
Test Your Knowledge in Computers #867
Difficulty: Medium
John McDonald developed Lisp in 1958 while he was at the Massachusetts Institute of Technology (MIT).
True or False?

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

Featured Tech Videos