Sponsored Content
Top Forums Shell Programming and Scripting awk reading many fields to array Post 302309763 by pinnacle on Wednesday 22nd of April 2009 08:07:19 PM
Old 04-22-2009
Quote:
Originally Posted by vgersh99
Say 'few fields from file B' means fields 1, 3 and 5
Code:
nawk -F, 'FNR==NR{a[$4]= $3 OFS $4 OFS $5 OFS $6 OFS $7;next} $1 in a{print a[$4] OFS $1 OFS $3 OFS $5}' OFS=, fileA fileB


Its giving wrong output and i figured it out :
It is because of duplicate in field 4 of fileA and $1 field in fileB will also have duplicates.

Say suppose file A in 4th field has 2 times
ABC
ABC


And fileB in 1st field has 7 times
ABC
ABC
ABC
ABC
ABC
ABC
ABC
Hence my output file should have 14 times ABC
But i am getting ABC only 7 times.

Appreciate help
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk sed cut? to rearrange random number of fields into 3 fields

I'm working on formatting some attendance data to meet a vendors requirements to upload to their system. With some help on the forums here, I have the data close. But they've since changed what they want. The vendor wants me to submit three fields to them. Field 1 is the studentid field,... (4 Replies)
Discussion started by: axo959
4 Replies

2. 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

3. UNIX for Dummies Questions & Answers

Fill fields with awk from an array?

Hi experts, I have been trying for a while to accomplish the following task using awk, and I just don't seem find find a way. I am not particular about using awk, it just seemed like the logical choice at first. I have a file that contains 5 fields that are delimited by a space character.... (1 Reply)
Discussion started by: GermanicGalore
1 Replies

4. Shell Programming and Scripting

Reading from array

Hi, I have an array like below... Table="table1" Table="table2" Table="table3" Table="table4" ..... Table="tablen" I want to retireve the values from the array and need to pass this to a db2 command to create a view like below. the number of values in the array will vary ... (1 Reply)
Discussion started by: ratheeshjulk
1 Replies

5. Shell Programming and Scripting

awk two fields in one array

I want to compare these files while putting $1 and $2 into an array and getting rid of the punctuation. What am i doing wrong? File1.txt Apple # 223 Peach # 84; Banana # 1605. Banana # 1605; Orange # 6; Peach # 84 Peach # 84; Apple # 229; Banana # 1605. Peach # 84 Apple, # 229;... (3 Replies)
Discussion started by: sdf
3 Replies

6. Shell Programming and Scripting

Join fields comparing 4 fields using awk

Hi All, I am looking for an awk script to do the following Join the fields together only if the first 4 fields are same. Can it be done with join function in awk?? a,b,c,d,8,,, a,b,c,d,,7,, a,b,c,d,,,9, a,b,p,e,8,,, a.b,p,e,,9,, a,b,p,z,,,,9 a,b,p,z,,8,, desired output: ... (1 Reply)
Discussion started by: aksijain
1 Replies

7. Shell Programming and Scripting

How to print 1st field and last 2 fields together and the rest of the fields after it using awk?

Hi experts, I need to print the first field first then last two fields should come next and then i need to print rest of the fields. Input : a1,abc,jsd,fhf,fkk,b1,b2 a2,acb,dfg,ghj,b3,c4 a3,djf,wdjg,fkg,dff,ggk,d4,d5 Expected output: a1,b1,b2,abc,jsd,fhf,fkk... (6 Replies)
Discussion started by: 100bees
6 Replies

8. Shell Programming and Scripting

awk - compare 1st 15 fields of record with 20 fields

I'm trying to compare 2 files for differences in a selct number of fields. When differnces are found it will write the whole record of the second file including appending '|C' out to a delta file. Each record will have 20 fields, but only want to do comparison of 1st 15 fields. The 1st field of... (7 Replies)
Discussion started by: sljnk
7 Replies

9. Shell Programming and Scripting

awk sort based on difference of fields and print all fields

Hi I have a file as below <field1> <field2> <field3> ... <field_num1> <field_num2> Trying to sort based on difference of <field_num1> and <field_num2> in desceding order and print all fields. I tried this and it doesn't sort on the difference field .. Appreciate your help. cat... (9 Replies)
Discussion started by: newstart
9 Replies

10. Shell Programming and Scripting

Help reading the array and sum of the array elements

Hi All, need help with reading the array and sum of the array elements. given an array of integers of size N . You need to print the sum of the elements in the array, keeping in mind that some of those integers may be quite large. Input Format The first line of the input consists of an... (1 Reply)
Discussion started by: nishantrefound
1 Replies
gd_field_list(3)						      GETDATA							  gd_field_list(3)

NAME
gd_field_list -- retrieve a list of fields in a dirfile SYNOPSIS
#include <getdata.h> const char **gd_field_list(DIRFILE *dirfile); DESCRIPTION
The gd_field_list() function queries a dirfile(5) database specified by dirfile and returns a read-only list of names of the all fields de- fined in the database. Notably, this list does not include /META subfields. The dirfile argument must point to a valid DIRFILE object previously created by a call to gd_open(3). The array returned will be de-allocated by a call to gd_close(3) and should not be de-allocated by the caller. The list returned should not be assumed to be in any particular order. The array is terminated by a NULL pointer. The number of strings in the array can be ob- tained from a call to gd_nfields(3). The caller may not modify any strings in the array, or the array itself. Doing so may cause database corruption. The pointer returned is guaranteed to be valid until gd_field_list() is called again on the same DIRFILE object, or until the array is de-allocated by a call to gd_close(3). RETURN VALUE
Upon successful completion, gd_field_list() returns a pointer to an array of strings containing the names of all the fields defined in the dirfile database. On error it returns NULL and sets the dirfile error to a non-zero error value. Possible error values are: GD_E_ALLOC The library was unable to allocate memory. GD_E_BAD_DIRFILE The supplied dirfile was invalid. The dirfile error may be retrieved by calling gd_error(3). A descriptive error string for the last error encountered can be obtained from a call to gd_error_string(3). SEE ALSO
dirfile(5), gd_cbopen(3), gd_error(3), gd_error_string(3), gd_field_list_by_type(3), gd_mfield_list(3), gd_nfields(3), gd_vector_list(3) Version 0.7.0 15 October 2010 gd_field_list(3)
All times are GMT -4. The time now is 09:30 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy