Sponsored Content
Top Forums Shell Programming and Scripting Compare multiple arrays elements using awk Post 302986491 by alex2005 on Friday 25th of November 2016 06:35:30 PM
Old 11-25-2016
Compare multiple arrays elements using awk

I need your help to discover missing elements for each box.
In theory each box should have 4 items: ITEM01, ITEM02, ITEM08, and ITEM10.
Some boxes either have a missing item (BOX02 ITEM08) or might have da duplicate item (BOX03 ITEM02) and missing another one (BOX03 ITEM01).

file01.txt

Code:
BOX01 ITEM01
BOX01 ITEM10
BOX01 ITEM08
BOX01 ITEM02
BOX02 ITEM01
BOX02 ITEM02
BOX02 ITEM10
BOX03 ITEM02
BOX03 ITEM10
BOX03 ITEM02
BOX03 ITEM08

Desired output:

Code:
Missing:
BOX02 ITEM08
BOX03 ITEM01

Duplicate items:
BOX03 ITEM02

To solve this presume I first need to create an item array I[$2]++ and then create and a BOX array B[$1]=$2 .
I don#t know how to write the code to check if items from array I exist in B.

To get the I array elements I have used:

Code:
awk '{I[$2]++}END{for (v in I) print v}' file01.txt

 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

multiple arrays through awk...

i am v new to awk, well unix as a whole really but im enjoying it alot... im trying to extract some data from a file, and parsing it into arrays, ive trawled for hours on the internet and cant find much when it comes to awk and arrays?? anyway, heres the file: tableA tableB tableC ... (2 Replies)
Discussion started by: newbeenie
2 Replies

2. Shell Programming and Scripting

PHP arrays as array elements

PHP question...I posted this on the Web Development forum, but maybe this is a better place! I have an SQL query that's pulled back user IDs as a set of columns. Rather than IDs, I want to use their names. So I have an array of columns $col with values 1,7,3,12 etc and I've got an array $person... (3 Replies)
Discussion started by: JerryHone
3 Replies

3. Shell Programming and Scripting

How to access the elements of two arrays with a single loop using the inbuilt index.

Hi all, I wanted to access two arrays (of same size) using one for loop. Ex: #!/bin/bash declare -a num declare -a words num=(1 2 3 4 5 6 7) words=(one two three four five six seven) for num in ${num} do echo ":$num: :${words}:" done Required Output: :1: :one: (11 Replies)
Discussion started by: 14341
11 Replies

4. Shell Programming and Scripting

AWK help: how to compare array elements against a variable

i have an array call ignore. it is set up ignore=34th56 ignore=re45ty ignore=rt45yu . . ignore=rthg34 n is a variable. I have another variable that i read from a different file. It is $2 and it is working the way i expect. array ignore read and print correct values. in the below if... (2 Replies)
Discussion started by: usustarr
2 Replies

5. Shell Programming and Scripting

Compare strings between 2 arrays and print number in AWK

Hi to everyone, Please some help over here. Hi have array a with 6 elements and array b with 3 elements as shown inside BEGIN{} statement. I need help to get the correct sintax (the part in red) to compare if string from array b is in array a and print the number related for each match.... (3 Replies)
Discussion started by: Ophiuchus
3 Replies

6. Shell Programming and Scripting

awk arrays - compare value in second column to variable

Hello, I am trying to redirect files to a directory by using a config file. The config files is as such: xxxxxx,ID,PathToDirectory xxxxxx,ID2,PathToDirectory2 and so on... I have a variable that should match one of these IDs. I want to load this config file into an awk array, and... (2 Replies)
Discussion started by: jrfiol
2 Replies

7. Shell Programming and Scripting

awk arrays comparing multiple columns across two files.

Hi, I'm trying to use awk arrays to compare values across two files based on multiple columns. I've attempted to load file 2 into an array and compare with values in file 1, but success has been absent. If anyone has any suggestions (and I'm not even sure if my script so far is on the right lines)... (4 Replies)
Discussion started by: hubleo
4 Replies

8. Shell Programming and Scripting

Sum elements of 2 arrays excluding labels

I'm looking for an efficient way to sum elements from 2 arrays using AWK and preserve header as well as sample names in the output array. I have Ubuntu 16.04 LTS. For example; ARRAY 1 SAMPLE DERIVED ANCESTRAL Sample1 14352 0 Sample2 14352 0 Sample3 14352 0 Sample4 ... (8 Replies)
Discussion started by: Geneanalyst
8 Replies

9. UNIX for Beginners Questions & Answers

Multiply elements of 2 arrays together into another array

So I need to Write an array processing program using a Linux shell programming language to perform the following. Load array X of 20 numbers from an input file X. Load array Y of 20 numbers from an input file Y. Compute array Z by multiply Xi * Yi then compute the square-root of this... (2 Replies)
Discussion started by: sarapham409
2 Replies

10. UNIX for Beginners Questions & Answers

awk sum of 2 arrays and compare

i'm new to awk, and i've been searching on the forum for sum of a column but all the scripts does sum a column of an entire file. I've a file like this: cat file.txt 1234 5678 5678 1234 I want to use awk to do sum of each column per line not entire file, compare the two then write the... (1 Reply)
Discussion started by: chofred
1 Replies
XmListReplacePositions(3X)												XmListReplacePositions(3X)

NAME
XmListReplacePositions - A List function that replaces items in a list based on position SYNOPSIS
#include <Xm/List.h> void XmListReplacePositions (widget, position_list, item_list, item_count) Widget widget; int *position_list; XmString *item_list; int item_count; DESCRIPTION
XmListReplacePositions replaces noncontiguous items in a list. The item at each position specified in position_list is replaced with the corresponding entry in item_list. When the items are inserted into the list, they are compared with the current XmNselectedItems list. Any of the new items that match items on the selected list appears selected. A warning message is displayed if a specified position is invalid; that is, the value is 0, a negative integer, or a number greater than the number of items in the list. Specifies the ID of the List widget. Specifies an array of the positions of items to be replaced. The position of the first item in the list is 1; the position of the second item is 2; and so on. Specifies an array of the replacement items. Specifies the number of elements in position_list and item_list. This number must be non-negative. For a complete definition of List and its associated resources, see XmList(3X). SEE ALSO
XmList(3X) XmListReplacePositions(3X)
All times are GMT -4. The time now is 05:09 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy