Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Continued trouble matching fields in different files and selective field printing ([g]awk) Post 303010720 by Don Cragun on Saturday 6th of January 2018 02:14:30 AM
Old 01-06-2018
If you are using only $1 & $2 as a key into file1 to match against $2 & $5 as a key into file2 and there those keys do not uniquely identify which record is to be processed when the data associated with those keys are not unique, there isn't anything I can do to help you. When there are multiple records with the same keys, you need to clearly describe how your code is supposed to determine which of those records are supposed to be paired.

The way the code is written now, the last record with a given key in file1 will be matched with all records with that key in file2. We now know that that isn't what you want. How do you uniquely describe a key that can be used to get what you do want? Or, in other words, what do you want to add to your current keys so your keys will uniquely identify the records you want to match in both files?
This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

AWK - printing certain fields when field order changes in data file

I'm hoping someone can help me on this. I have a data file that greatly simplified might look like this: sec;src;dst;proto 421;10.10.10.1;10.10.10.2;tcp 426;10.10.10.3;10.10.10.4;udp 442;10.10.10.5;10.10.10.6;tcp sec;src;fac;dst;proto 521;10.10.10.1;ab;10.10.10.2;tcp... (3 Replies)
Discussion started by: eric4
3 Replies

2. Shell Programming and Scripting

selective printing awk

Hi there my file looks like this 1 a b c d e f 2 a b b c d e f f g h e t t 3 a c b d e f 4 a b c i want to print the line which has the fields containing ONLY a b c, in this case the line 4. How can i awk it !!!? Many Thanks in advance! (8 Replies)
Discussion started by: saint2006
8 Replies

3. Shell Programming and Scripting

AWK Matching Fields and Combining Files

Hello! I am writing a program to run through two large lists of data (~300,000 rows), find where rows in one file match another, and combine them based on matching fields. Due to the large file sizes, I'm guessing AWK will be the most efficient way to do this. Overall, the input and output I'm... (5 Replies)
Discussion started by: Michelangelo
5 Replies

4. Shell Programming and Scripting

AWK : Add Fields of lines with matching field

Dear All, I would like to add values of a field, if the lines match in a certain field. Then I would like to divide the sum though the number of lines that have a matched field. This is the Input: Input: Test1 5 Test1 10 Test2 2 Test2 5 Test2 13 Test3 4 Output: Test1 7.5 Test1 7.5... (6 Replies)
Discussion started by: DerSeb
6 Replies

5. Shell Programming and Scripting

Awk selective printing

Hi, i need help to print number from different field INPUT: Student1 10 20 Student2 30 40 Student3 50 60 Student4 70 80 Desired Output: 1 20-30 2 40-50 3 60-70 Thank you! (5 Replies)
Discussion started by: saint2006
5 Replies

6. Shell Programming and Scripting

Printing entire field, if at least one row is matching by AWK

Dear all, I have been trying to print an entire field, if the first line of the field is matching. For example, my input looks something like this. aaa ddd zzz 123 987 126 24 0.650 985 354 9864 0.32 0.333 4324 000 I am looking for a pattern,... (5 Replies)
Discussion started by: Chulamakuri
5 Replies

7. Shell Programming and Scripting

awk to combine all matching fields in input but only print line with largest value in specific field

In the below I am trying to use awk to match all the $13 values in input, which is tab-delimited, that are in $1 of gene which is just a single column of text. However only the line with the greatest $9 value in input needs to be printed. So in the example below all the MECP2 and LTBP1... (0 Replies)
Discussion started by: cmccabe
0 Replies

8. UNIX for Beginners Questions & Answers

Awk: matching multiple fields between 2 files

Hi, I have 2 tab-delimited input files as follows. file1.tab: green A apple red B apple file2.tab: apple - A;Z Objective: Return $1 of file1 if, . $1 of file2 matches $3 of file1 and, . any single element (separated by ";") in $3 of file2 is present in $2 of file1 In order to... (3 Replies)
Discussion started by: beca123456
3 Replies

9. Shell Programming and Scripting

awk Selective printing of fields

Hi Gurus, I have following input file. I tried multiple awk combinations to print selected columns without success. HEX ID Name ver FLRGT Start Time Total Shared End Date ----- -------- --- ------ ------------------------ -------------- -------... (4 Replies)
Discussion started by: shunya
4 Replies

10. UNIX for Beginners Questions & Answers

awk for matching fields between files with repeated records

Hello all, I am having trouble with what should be an easy task, but seem to be missing something fundamental. I have two files, with File 1 consisting of a single field of many thousands of records. I also have File 2 with two fields and many thousands of records. My goal is that when $1 of... (2 Replies)
Discussion started by: jvoot
2 Replies
RMGDIFF(1x)															       RMGDIFF(1x)

NAME
rmgdiff - use almost any graphical file difference browser to recursively view the differences between two directories. SYNOPSIS
rmgdiff [-b] [-d] [-g gui] [-n] dir1 dir2 DESCRIPTION
rmgdiff is an awk script that works in conjunction with almost any graphical file difference browser. It is known to work with mgdiff, tkdiff, and xdiff. Unless I am mistaken, most of the GUI difference viewers (except for emacs) do not have built-in support for recursing down two directo- ries, but diff does. Based on diff's output, rmgdiff decides when to invoke the graphical difference viewer. In addition, rmgdiff also collates diff's output. As soon as a new difference is encountered in a text file, rmgdiff will print to stan- dard output the name of the file that both directories have in common. It will then start the GUI and block until the user exits. As more text files with differences are found, the GUI will be started up again. In the interim, rmgdiff will keep track of differences in binary (non-text) files. It organizes the binary files as executables, shared libraries, static libraries, object files, and other. Only after all the text files have been displayed will rmgdiff report the binary differences. It also keeps track of files and directories that diff reports as being only in one directory or another. rmgdiff organizes these entries by directory. Thus, files in one directory will be reported in one block, and files that are in the other directory will be reported in a different block. In addition to printing the name of the files that are different, rmgdiff defaults to printing the relevant portion of the output from the file command. This has the unfortunate side-effect of slowing things down; however, I find this information to be invaluable. If you're just looking for a fast way to collate diff's output, try piping it into sort instead. COMMAND LINE OPTIONS
-b Sets the basic reporting mode. In basic mode, rmgdiff reports only file names. It does not report the file types involved. -c By default, files relating to CVS are ignored by rmgdiff. If you want to include CVS files, use this option. -d Sets rmgdiff to print way too much debugging information. -g gui Tells rmgdiff which gui you would like to use for viewing differences. By default, mgdiff is used. You can also set $RMGDIFF_GUI in your environment, but it can be overridden with this option. -n rmgdiff will not invoke the gui. This is useful, if you only want to view the collated output. AUTHOR
Paul Serice (paul@serice.net) RMGDIFF(1x)
All times are GMT -4. The time now is 11:44 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy