Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
Search Forums:



UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

Closed Thread    
 
Thread Tools Search this Thread Display Modes
    #1  
Old 12-18-2003
inquirer's Avatar
Registered User
 

Join Date: Aug 2001
Posts: 79
Thanks: 0
Thanked 0 Times in 0 Posts
pass variable to awk

i would like to pass a variable to awk wherein the variable comes from external loop.

i tried this...

let x=0

until test $x -eq 32
do
cat file | awk '{ print $1 , "Number" , $($x) }' >> output
done

thanks,
Sponsored Links
    #2  
Old 12-19-2003
fpmurphy's Avatar
who?
 

Join Date: Dec 2003
Location: /dev/ph
Posts: 4,045
Thanks: 35
Thanked 282 Times in 263 Posts
Try the following

cat file | awk -v xx=$x '{ print $1 , "Number" , xx }' >> output

- Finnbarr
Sponsored Links
    #3  
Old 12-19-2003
google's Avatar
google google is offline Forum Advisor  
Advisor
 

Join Date: Jul 2002
Location: Atlanta
Posts: 740
Thanks: 0
Thanked 1 Time in 1 Post
cat file | awk '{ print $1 , "Number" , $($x) }' >> output

-- Note: Awk is a little different from shell in that you do not need to use the $ sign to access a variable. The only time you would do so is if you wanted to get the value of a field variable. Example: $1 $2 ..$n where n is a value up to 199
    #4  
Old 02-10-2004
inquirer's Avatar
Registered User
 

Join Date: Aug 2001
Posts: 79
Thanks: 0
Thanked 0 Times in 0 Posts
Thumbs down sorry but not working

actually this is a sample of what i want to do:

from the sample code:


Code:
grep "keyword" filename | awk '{print $2}' >> outfile
grep "keyword" filename | awk '{print $3}' >> outfile
        .
        .
        .
grep "keyword" filename | awk '{print $32}' >> outfile

i want to shorten it to loop like this:

Code:
let x = 2

until test $x > 32
do

grep "keyword" filename | awk ...???

let x = x + 1

done

so you see i want to pass a variable to awk where the value will also be the variable for print.

thanks a lot
Sponsored Links
    #5  
Old 02-11-2004
oombera's Avatar
oombera oombera is offline Forum Advisor  
Registered User
 

Join Date: Aug 2002
Location: Cleveland, OH
Posts: 804
Thanks: 0
Thanked 2 Times in 2 Posts
Well, I'm assuming "keyword" is the same word in all those lines you have in your first section of code.... and I'm assuming the line it returns is gonna be a long line, and you're trying to print each part of the returned line on it's own line...

See if this works for you:
Code:
grep "keyword" filename | awk '{ for (i = 1; i <= NF; i++ ) print $i}' >> outfile

Sponsored Links
Closed Thread

« FTP Output | cut »
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Pass csh variable to Perl Raynon Shell Programming and Scripting 9 10-19-2007 09:46 PM
How do I pass a variable to awk? eja UNIX for Dummies Questions & Answers 12 04-03-2007 05:46 PM
How to pass a variable to Awk ? Raynon Shell Programming and Scripting 24 02-26-2007 08:25 AM
getting the file name and pass as variable u263066 Shell Programming and Scripting 1 09-12-2006 04:38 AM
Pass variable to sed? kristy Shell Programming and Scripting 2 04-04-2002 03:14 PM



All times are GMT -4. The time now is 03:17 AM.