Not getting array in .awk file and print it


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Not getting array in .awk file and print it
# 8  
Old 05-23-2014
Yes, and what's wrong? What would you expect? Show us the contents of test.awk and IDARR.
# 9  
Old 05-26-2014
Quote:
Originally Posted by nes
When I tried to print that values in test.sh file, I am getting 2 values from array

Code:
set -A IDARR $ID
echo "${IDARR[*]}"
echo | awk -f test.awk -v TempArr="${IDARR[*]}"

Getting out put as below :
3 1

Thanks in advance... Smilie
Here I am getting output from test.sh file not from test.awk file
I wanted that array values from test.sh to test.awk file
# 10  
Old 05-26-2014
Use this

Code:
$ cat test.ksh
#!/bin/ksh

# some value
ID="1 2 3 4 5 6 7"

# Array
set -A IDARR $ID

# Echo array contents...
echo "From shell ${IDARR[*]}"

# Execute awk script
awk -f test.awk -v TempArr="${IDARR[*]}"

Code:
$ cat test.awk
BEGIN {

 # this is variable
 print "from awk", TempArr;

 # split variable contents into array with default FS space
 split(TempArr,NewArray)

 # print contents of NewArray we created above..
 for(i in NewArray)
 {
  print "index",i,"element",NewArray[i];
 }
}

Resulting
Code:
$ ksh test.ksh 
From shell 1 2 3 4 5 6 7
from awk 1 2 3 4 5 6 7
index 4 element 4
index 5 element 5
index 6 element 6
index 7 element 7
index 1 element 1
index 2 element 2
index 3 element 3

From terminal if you want to execute awk script try like this

Code:
$ awk -f test.awk -v TempArr="Hai hello world this is test"

Resulting
Code:
from awk Hai hello world this is test
index 4 element this
index 5 element is
index 6 element test
index 1 element Hai
index 2 element hello
index 3 element world

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to print array that occurs the most with matching value in another field

In the below awk I am splitting $7 on the : and then counting each line or NM_xxxx. If the $1 value is the same for each line then print the $7 that occurs the most with the matching $1 value. The awk seems close but I am not sure what is going on. I included a description as well as to what I... (1 Reply)
Discussion started by: cmccabe
1 Replies

2. Shell Programming and Scripting

Append awk results into file or array

for a in {1..100} do awk '{ sum+=$a} END {print sum}' a=$a file1 > file2 done I know I will get only one number if following the code above, how can I get 100 sum numbers in file2? (2 Replies)
Discussion started by: wanliushao
2 Replies

3. UNIX for Dummies Questions & Answers

How To Print Array in awk?

Hello, May i please know how do i print the array using awk script. I am using below shell script to start with but not working. #!/bin/bash LOADSTATUS="Line 0" LOADSTATUS="Line 1" LOADSTATUS="Line 2" LOADSTATUS="Line 3" LOADSTATUS="Line 4" awk ' BEGIN { Your File Load Status }... (1 Reply)
Discussion started by: Ariean
1 Replies

4. Shell Programming and Scripting

Awk: Print count for column in a file using awk

Hi, I have the following input in a file & need output as mentioned below(need counter of every occurance of field which is to be increased by 1). Input: 919143110065 919143110065 919143110052 918648846132 919143110012 918648873782 919143110152 919143110152 919143110152... (2 Replies)
Discussion started by: siramitsharma
2 Replies

5. Shell Programming and Scripting

Perl - use search keywords from array and search a file and print 3rd field when matched

Hi , I have been trying to write a perl script to do this job. But i am not able to achieve the desired result. Below is my code. my $current_value=12345; my @users=("bob","ben","tom","harry"); open DBLIST,"<","/var/tmp/DBinfo"; my @input = <DBLIST>; foreach (@users) { my... (11 Replies)
Discussion started by: chidori
11 Replies

6. Shell Programming and Scripting

Print array into a single file - AWK

Hi all, I been looking for a solution to the fact that when I use: for (i=1; i<=NF; i++) print $ifields that are originally in a single line are printed in a single line I have severals files for which the first 7 are the same, but the number of variables after that can vary, for example NF... (5 Replies)
Discussion started by: PaulaL
5 Replies

7. Shell Programming and Scripting

Print @array content to a file

Hi, as the title, I have an array @f_lines with gene information in it. How can I put the content of @f_lines into a file so that I can read it? I tried this: open(OUTPUT, "file"); # put gene information in this file; @f_lines = ("gene1", "gene2", "gene3"...); # gene information; print... (3 Replies)
Discussion started by: lyni2ULF
3 Replies

8. Shell Programming and Scripting

AWK separating a file into an array

Is there a way to have awk put successive records into an array in a bash script? I have files that say things like name :title :salary Bob :Instructor :30,000 Joyce :Instructor :30,000 Patrick :Manager :40,000 What I want to do is seperate this file into an array so that... (8 Replies)
Discussion started by: tgidzak
8 Replies

9. Shell Programming and Scripting

awk: reading into an array and then print the value corresponding to index

I am beginner in awk awk 'BEGIN{for(i=1;(getline<"opnoise")>0;i++) arr=$1}{print arr}' In the above script, opnoise is a file, I am reading it into an array and then printing the value corresponding to index 20. Well this is not my real objective, but I have posted this example to describe... (19 Replies)
Discussion started by: akshaykr2
19 Replies

10. Shell Programming and Scripting

saving values in file in an array in awk

hi i am trying to save values in a file in an array in awk..the file is as follows: 0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0, so far i have this: awk 'BEGIN {RS="\n";FS=","} { for(i=1;i<=NR;i++) { for(j=1;j<=NF;j++) { a=$j; } } (4 Replies)
Discussion started by: npatwardhan
4 Replies
Login or Register to Ask a Question