Visit Our UNIX and Linux User Community


Return Awk Variable to Shell


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Return Awk Variable to Shell
# 1  
Old 08-07-2009
Return Awk Variable to Shell

I'm a bit stuck in getting variable from awk to shell. I tried searching but most of them showing to assign to shell variable via..

Code:
VAR=`echo $line | awk -F: '{print $1}'`

which is correct ofcourse

My problem is multiple assignments of variable like this one. The above solution will give me several lines of same coding.

Code:
 echo $line | awk -F: '{account=$1;schedule=$2;unixlist=$3;ntlist=$4;urllist=$5;pinglist=$6;ntpassfile=$7;}'

Here's the $LINE
Code:
CLIENT:0,3,6,9,12,15,18,21:/home/erm/user/CLIENT/PARM/unix_servers.txt:/home/erm/user/CLIENT/PARM/nt_servers.txt:/home/erm/user/CLIENT/PARM/CLIENT_url.txt:/home/erm/user/COACH/PARM/ping_serv_list.txt:/home/erm/user/COACH/PARM/pass.txt

# 2  
Old 08-07-2009
Is it ok for you to handle them in an shell array or do you want to split them to different shell variables?
# 3  
Old 08-07-2009
well i would want to them to be in different shell variables, but anyway can you show me both how to work on this?
# 4  
Old 08-07-2009
Arrays depend on the shell you use, there should be some threads in the forum here you can find via the search function.

You could also simply use one line per variable definition like this, without needing awk:
Code:
ACCOUNT=`echo $line | cut -d":" -f1`
SCHEDULE=`echo $line | cut -d":" -f2`
...

# 5  
Old 08-07-2009
yes.. that's the current code i'm using.. can i not do it in one line? or at least the shortest way
# 6  
Old 08-07-2009
I think this is the most simple and most clear. If you go by awk and maybe print out the variable names as text together with the = and the value, you'll have to eval the output so it will be recognized as shell variables.
I would stick with the crude solution. There is no other solution coming to my mind that would be shorter. Maybe another reader has an idea.
# 7  
Old 08-07-2009
Another way ...
Code:
$ line="a:b:c"
$ echo $line | IFS=":" read var1 var2 var3
$ echo $var1
a
$ echo $var2
b
$ echo $var3
c


Previous Thread | Next Thread
Test Your Knowledge in Computers #828
Difficulty: Medium
JSON and ECMAScript 2018 both allows the Unicode line terminators U+2028 LINE SEPARATOR and U+2029 PARAGRAPH SEPARATOR to appear unescaped in quoted strings.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How can I assign awk's variable to shell script's variable?

I have the following script, and I want to assign the output ($10 and $5) from awk to N and L: grdinfo data.grd | awk '{print $10,$5}'| read N L output from gridinfo data.grd is: data.grd 50 100 41 82 -2796 6944 0.016 0.016 3001 2461. where N and L is suppose to be 3001 and 100. I use... (8 Replies)
Discussion started by: geomarine
8 Replies

2. Shell Programming and Scripting

Shell Variables passed to awk to return certain rows

Hi Forum. I have the following test.txt file and need to extract certain rows based on "starting position", "length of string" and "string to search for": 1a2b3d 2a3c4d ..... My script accepts 3 parameters: (starting col pos, length to search for, string to search for) and would like to... (4 Replies)
Discussion started by: pchang
4 Replies

3. Shell Programming and Scripting

Return value inside isql to a shell variable in ksh

Hello, I have a shell script where I am doing an isql to select some records. the result i get from the select statement is directed to an output file. I want to assign the result to a Shell variable so that I can use the retrieved in another routine. e.g. "isql -U${USER} -P${PASSWD} -S${SERVER}... (1 Reply)
Discussion started by: RookieDev
1 Replies

4. Shell Programming and Scripting

Assigning return value of an embedded SQL in a shell script variable

I've a script of the following form calling a simple sql that counts the no of rows as based on some conditions. I want the count returned by the sql to get assigned to the variable sql_ret_val1. However I'm finding that this var is always getting assigned a value of 0. I have verified by executing... (1 Reply)
Discussion started by: MxC
1 Replies

5. Shell Programming and Scripting

assign awk's variable to shell script's variable?

Dear All, we have a command output which looks like : Total 200 queues in 30000 Kbytes and we're going to get "200" and "30000" for further process. currently, i'm using : numA=echo $OUTPUT | awk '{print $2}' numB=echo $OUTPUT | awk '{print $5}' my question is : can I use just one... (4 Replies)
Discussion started by: tiger2000
4 Replies

6. Shell Programming and Scripting

How to return a value of a variable from shell script to perl script

HI , Is there any way to return a value of variable from shell to perl script. Code: === Perl file my $diff1=system("sh diff.sh"); my $diff2=system("sh diff1.sh"); I need exit status of below commands i.e 0 and 1 respectively. Since in both the cases diff is working so system... (3 Replies)
Discussion started by: srkelect
3 Replies

7. Shell Programming and Scripting

Awk return variable

Hi I have 2 working script, now i'd like to get the return value from the first and give it to the 2 script (both script work correctly if I run it separately). so i think the problem is only the first line in the way i pass the variable. in the final the "print lst", is just to check the... (2 Replies)
Discussion started by: Dedalus
2 Replies

8. Shell Programming and Scripting

Insert a line including Variable & Carriage Return / sed command as Variable

I want to instert Category:XXXXX into the 2. line something like this should work, but I have somewhere the wrong sytanx. something with the linebreak goes wrong: sed "2i\\${n}Category:$cat\n" Sample: Titel Blahh Blahh abllk sdhsd sjdhf Blahh Blah Blahh Blahh Should look like... (2 Replies)
Discussion started by: lowmaster
2 Replies

9. Shell Programming and Scripting

How to use substr to return data into a shell script variable?

I'm writing a shell script in which I need to be able to pull a portion of the file name out. I'm testing with the following code: x="O1164885.DAT" y=`ls -ltr *${x}|awk '{print substr($0,3)}'` echo ${x}|awk '{print substr($0,3)}' echo "y="$y I can echo it to the screen just fine but I... (3 Replies)
Discussion started by: ttunell
3 Replies

10. Shell Programming and Scripting

return variable from PL/SQL procedure to shell

Hi i'm calling a pl/sql procedure which is returning one variable. i'm trying to assing this value to variable in shell script the code i wrote is ** in shell script** var= 'sqlplus user/pass @ret.sql' echo $var ** and variable dum_var number exec rt_test(:DUM_VAR); exit; in... (4 Replies)
Discussion started by: ap_gore79
4 Replies

Featured Tech Videos