move output of awk to array


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting move output of awk to array
# 8  
Old 12-20-2007
depending on the shell you are using
Code:
# set -- $array 
# echo $6

or else , if you just want to get the 6th field, you can do it inside awk. If you list4.txt is just one column, your 6th item would be NR==6
Code:
# result=`awk 'NR==6{print}' list4.txt`
# echo "this is my 6th item : $result"

# 9  
Old 12-20-2007
Hi,

My shell is tcsh,

What I am looking for is,

array=`awk '{print $1}' /users/jon/list4.txt`
array2=`awk '{print $1}' /users/jon/list5.txt`

If value in array[] Not equal array2[]
then
echo value of arra[] >> ~/noval.txt

can I do this?

Thanks

Amit
# 10  
Old 12-20-2007
Code:
# awk '{print $1}' /users/jon/list4.txt > 1.txt
# awk '{print $1}' /users/jon/list5.txt > 2.txt
# diff 1.txt 2.txt
# echo $? #use this to check whether the 2 files are different.

I leave the rest of the code to you. before you diff the 2 files, use sort to sort the items , or you can sort them by piping the output of awk to sort.
# 11  
Old 12-20-2007
While I agree with the method ghostdog74 proposes, the user specifically asked for a tcsh solution. Here is one that should work provided the files are small.

Code:
#!/bin/tcsh

set a=`awk '{print $1}' file1`
echo $a
echo "$a[2]"
echo "$#a"

set b=`awk '{print $1}' file2`
echo $b
echo "$b[2]"
echo "$#b"

if ($#a == $#b) then
   echo "number of lines match"
else
   echo "number of lines do not match"
endif

if ("$a" == "$b") then
   echo "files match"
else
   echo "files do not match"
endif

# 12  
Old 12-21-2007
Quote:
Originally Posted by ghostdog74
Code:
# awk '{print $1}' /users/jon/list4.txt > 1.txt
# awk '{print $1}' /users/jon/list5.txt > 2.txt
# diff 1.txt 2.txt
# echo $? #use this to check whether the 2 files are different.

I leave the rest of the code to you. before you diff the 2 files, use sort to sort the items , or you can sort them by piping the output of awk to sort.
Hi,

when we do line by line compare for file1 and file2 , how do I extract the value in file1 which did not match that in file2.

Will it work even if sort, because there could be some order in file2.

Let me know

Thanks

Amit
Amit
# 13  
Old 12-21-2007
Quote:
Originally Posted by fpmurphy
While I agree with the method ghostdog74 proposes, the user specifically asked for a tcsh solution. Here is one that should work provided the files are small.

Code:
#!/bin/tcsh

set a=`awk '{print $1}' file1`
echo $a
echo "$a[2]"
echo "$#a"

set b=`awk '{print $1}' file2`
echo $b
echo "$b[2]"
echo "$#b"

if ($#a == $#b) then
   echo "number of lines match"
else
   echo "number of lines do not match"
endif

if ("$a" == "$b") then
   echo "files match"
else
   echo "files do not match"
endif

Hi murphy,

how do I get the line which did not match? from your script

Pls help

Amit
# 14  
Old 12-21-2007
Quote:
Originally Posted by amitrajvarma
Hi,

when we do line by line compare for file1 and file2 , how do I extract the value in file1 which did not match that in file2.

Will it work even if sort, because there could be some order in file2.

Let me know

Thanks

Amit
Amit
first, sort the 2 files. man sort for more information.
then, use comm to compare them. man comm for more information
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

ksh : need to store the output of a awk command to a array

I have awk command : awk -F ' ' '{ print $NF }' log filename And it gives the output as below: 06:00:00 parameters: SDS (2) no no no no doc=4000000000). information: (6 Replies)
Discussion started by: ramprabhum
6 Replies

2. Shell Programming and Scripting

Sorting output of AWK array

I need help to sort the output of an awk array Example datadata="1 blue 2 green 3 blue 4 yellow 5 blue 6 red 7 yellow 8 red 9 yellow 10 yellow 11 green 12 orange 13 black" My awk line to get output in one lineecho "$data" | awk ' {arr++; next} END { for (i in arr) { if(arr>1 )... (2 Replies)
Discussion started by: Jotne
2 Replies

3. Shell Programming and Scripting

Need to have output of AWK array in one line

I have this code echo $logfile | awk ' {arr++; next} END { for (i in arr) {print i} }' that gives me this output result1 result2 result3 I try to figure out how to get it like this result1 result2 result3 (4 Replies)
Discussion started by: Jotne
4 Replies

4. Shell Programming and Scripting

awk assign output of array to specific field-number

With this script i want to print the output to a specific field-number . Can anybody help? awk 'NR=FNR{split(FILENAME,fn,"_");nr=$2;f = $1} END{for (i=1;i<=f;i++) print i,$fn=nr}' input_5.csv input_6.csvinput_5.csv 4 135 5 185 6 85 11 30input_6.csv 1 90 3 58 4 135 7 60 8 55 10... (1 Reply)
Discussion started by: sdf
1 Replies

5. Shell Programming and Scripting

awk output error while loop through array

Have built this script, the output is what I needed, but NR 6 is omitted. Why? Is it an error? I am using Gawk. '{nr=$2;f = $1} END{for (i=1;i<=f;i++) if (nr != i) print i, nr }' input1.csv >output1.csvinput1.csv 1 9 3 5 4 1 7 6 8 5 10 6 output1.csv > with the missing line number 6. 6 is... (5 Replies)
Discussion started by: sdf
5 Replies

6. Shell Programming and Scripting

Sorting awk array output?

Hi all, I have a script which produces a nice table but I want to sort it on column 3. This is the output line in the script: # Output { FS = ":"; format = "%11s %6s %-16s\n"; prinft "\n" printf ( format, "Size","Count","Who" ) } for (i in... (21 Replies)
Discussion started by: Cowardly
21 Replies

7. Filesystems, Disks and Memory

iostat output vs TPC output (array layer)

Hi Guys, I've been having some arguments with my colleagues about one thing. Always my thought was that as as far as disk performance is concern by looking at the output of the iostat command (AIX) you would be able to identify if you have a hot disk and then by moving some files out that disk... (3 Replies)
Discussion started by: arizah
3 Replies

8. Shell Programming and Scripting

awk - Pre-populating an array from system command output

So, here's a scenario that requires the same logic as what I'm working on: Suppose that you have a directory containing files named after users. For awk's purposes, the filename is a single field-- something parse-friendly, like john_smith. Now, let's say that I'd like to populate an array in... (2 Replies)
Discussion started by: treesloth
2 Replies

9. Shell Programming and Scripting

declaring array and move to next line in shell script

Hi, In shell script, I have a value and i like to move that value to a particular position in a file. For example, if i have 20000909 then i like to move that to the 15 to 23 position in a file. Is it possible to have array kind of thing in the shell ? a is array then a = 123 a =... (2 Replies)
Discussion started by: informsrini
2 Replies

10. Shell Programming and Scripting

bash:awk output into an array

Hi, I have a file 1:apple orange:one 2:banana:two 3:cherry:3 When I do awk -F: ' { print $2 } ' file apple orange banana cherry Now, when i redirect awk output to the file it has issue with strings #!/bin/bash FILEA=file A=(`awk -F: ' { print $2 } ' $FILEA `) echo ${A} (2 Replies)
Discussion started by: phamp008
2 Replies
Login or Register to Ask a Question