How to assign a value to a variable in awk scripting?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to assign a value to a variable in awk scripting?
# 1  
Old 08-27-2019
How to assign a value to a variable in awk scripting?

Hi,

I am trying to assign a value using below command and it is assigning the command to the variable not the output of the command?

Code:
out_value="echo $0 | cut -c 9-11";

How can i assign the output to the variable instead of whole command?

This is inside my awk script

Last edited by Don Cragun; 08-28-2019 at 01:21 AM.. Reason: Add CODE tags, again.
# 2  
Old 08-27-2019
How about:
Code:
out_value=$( echo $0 | cut -c 9-11 )

# 3  
Old 08-27-2019
Its giving the syntax error.

--- Post updated at 06:27 PM ---

This is how my awk script looks like :

AWK script:

Code:
BEGIN {
 FS="|$@#!|$@#!";
 lno=0;
 m_start=0;
m_end=0;
 }
{
lno=lno+1;
  if ( $0 ~ /^ABC OUT:/ )
  {
    out_value=$( echo $0 | cut -c 9-11 )
    if (m_start == 1 && m_end == 0)
     {
        msg_arr[msg_lnno++]=$0;
     }
   }


Last edited by Don Cragun; 08-28-2019 at 01:14 AM.. Reason: Add CODE tags, again.
# 4  
Old 08-27-2019
Code:
out_value=substr($0, 9, 3);


Last edited by rdrtx1; 02-18-2020 at 08:24 PM..
# 5  
Old 08-27-2019
There's no point using cut inside awk.

Code:
out_value=substr($1,9,3)

...but for the record you could use backticks, variable=`command`; ...at a very large performance cost.
This User Gave Thanks to Corona688 For This Post:
# 6  
Old 08-27-2019
Thanks..Actually i tried with substr and it was working..

Later i encountered an error and thought that is related to to the substr function. But looks like it caused by something else.

Thanks for the response !!

--- Post updated at 07:33 PM ---

Similar to that I am also trying an awk array and wanted to check if the array value match string "{5:{" , replace with 5: and assign it back to same array and print it.

But below code is not working its not able to replace the array value , instead its assigning whole command to msg_arr[i] and printing it

any solution for this?

Code:
              for (i=msgtkn_20_lnno; i<msg_lnno;)
              {
                if(msg_arr[i]  ~ /^{5:{/ )
                {
                tag5_before_value= msg_arr[i];
               msg_arr[i]="echo $tag5_before_value | sed 's/{5:{/5:/g'";
                printf "after conversion is %s/n", abc > "LOG.txt";
               print msg_arr[i++];
               }
                else
                {
                  print msg_arr[i++];
                }

              }

as soon as i use "`" its giving me syntax error

Last edited by Don Cragun; 08-27-2019 at 09:49 PM.. Reason: Add CODE tags, again.
# 7  
Old 08-27-2019
repeat from another post.

try:
Code:
gsub("{5:{", "5:", msg_arr[i]);

instead of:
Code:
tag5_before_value= msg_arr[i];
msg_arr[i]="echo $tag5_before_value | sed 's/{5:{/5:/g'";


Last edited by rdrtx1; 02-18-2020 at 07:53 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

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

Assign awk gsub result to a variable

Hello, I have searched but failed to find what exactly im looking for, I need to eliminate first "." in a output so i can use something like the following echo "./abc/20141127" | nawk '{gsub("^.","");print}' what i want is to use gsub result later on, how could i achieve it? Let say... (4 Replies)
Discussion started by: EAGL€
4 Replies

3. Shell Programming and Scripting

Assign a variable with awk

I launch 'netstat -a', if string 'ESTABLISHED' found, then VAR=1 #!/bin/bash VAR=0; netstat -a | awk '$6 ~ /ESTABLISHED/ {VAR=1}' I cannot find the right syntax. thanx guys! (3 Replies)
Discussion started by: arpagon
3 Replies

4. Shell Programming and Scripting

help on awk---- need to assign the output of awk to a variable

hi i want to find the size of a folder and assign it to a variable and then compare if it is greater than 1 gb. i am doin this script, but it is throwing error.... #!/bin/ksh cd . | du -s | size = awk '{print $1}' if size >= 112000 then echo size high fi ERROR : (4 Replies)
Discussion started by: Nithz
4 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

awk: assign variable with -v didn't work in awk filter

I want to filter 2nd column = 2 using awk $ cat t 1 2 2 4 $ VAR=2 #variable worked in print $ cat t | awk -v ID=$VAR ' { print ID}' 2 2 # but variable didn't work in awk filter $ cat t | awk -v ID=$VAR '$2~/ID/ { print $0}' (2 Replies)
Discussion started by: honglus
2 Replies

7. Shell Programming and Scripting

assign awk output to bash variable

greetings all, I am have a heck of a time trying to accomplish a very simple thing. I have an array of "shortname<spaces>id" created from a dscl output. I want to assign shortname=word1 and id=word2. I have tried shortname=$(${textArray} | awk '{print $1}') - and get 'awk : cannot open... (3 Replies)
Discussion started by: macnetdaemon
3 Replies

8. Shell Programming and Scripting

Assign o/p of awk to a variable

:confused: Hi UNIX gurus, I am facing a typical problem while assigining while assigining output of awk to a variable. I have a fixed length file say myinputfile.txt When I allow the value/output of an awk to be redirected to a file, it works fine. i.e. awk "/^.{232}$acctNum/ {... (8 Replies)
Discussion started by: c2b2
8 Replies

9. Shell Programming and Scripting

assign value to variable using AWK

Dear Friends I have text file as like below, AAAAA|BHBHBH|VERYSMART AAAAA| KKKKKK|GOOD BBBBBB|JJJJJJJ|VERYGOOD CCCCC|HJHJHJ|BETTER CCCCC|UUUUU|GOOD i need to split into seperate files based on column 1 like as below AAAAA.TXT contains -------------------- BHBHBH.VERYSMART... (4 Replies)
Discussion started by: HAA
4 Replies

10. Shell Programming and Scripting

awk: assign a printf value to a variable

Is there any way to something like this?: variable=printf("%30s",var1) Thx. (2 Replies)
Discussion started by: Klashxx
2 Replies
Login or Register to Ask a Question