![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Compare between two files | Quijote | Shell Programming and Scripting | 4 | 01-06-2009 03:00 PM |
| How to compare 2 files. | ashoka123 | Shell Programming and Scripting | 6 | 10-21-2008 02:38 AM |
| How to compare to files | arkhei | UNIX for Dummies Questions & Answers | 1 | 09-20-2008 04:45 AM |
| compare files | danabo | Shell Programming and Scripting | 3 | 05-19-2008 12:09 PM |
| compare files | ingunix | UNIX for Dummies Questions & Answers | 3 | 05-24-2001 11:44 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
Compare two files using awk
Hi. I'm new to awk and have searched for a solution to my problem, but haven't found the right answer yet. I have two files that look like this:
file1 Delete,3105551234 Delete,3105551236 Delete,5625559876 Delete,5625556789 Delete,5625553456 Delete,5625551234 Delete,5625556956 Delete,5625556643 Delete,6265552486 Delete,6265559365 Add,7755559833 Add,9515550087 file2 93,170334,0,-1,-1,,AAA,,5625556643,6465550987,,,-1,,581,93,-1 94,170335,0,-1,-1,,AAA,,7145550167,6465550987,,,-1,,581,93,-1 107,170239,0,-1,-1,,AAA,,6265559999,6465550987,,,-1,,581,93,-1 109,170240,0,-1,-1,,AAA,,5205558723,6465550987,,,-1,,581,93,-1 110,170241,0,-1,-1,,AAA,,3105551236,6465550987,,,-1,,581,93,-1 111,170348,0,-1,-1,,AAA,,6195550178,6465550987,,,-1,,581,93,-1 114,170256,0,-1,-1,,AAA,,5625559876,6465550987,,,-1,,581,93,-1 118,170336,0,-1,-1,,AAA,,3105551234,6465550987,,,-1,,581,93,-1 119,170337,0,-1,-1,,AAA,,5125559812,6465550987,,,-1,,581,93,-1 120,170338,0,-1,-1,,AAA,,5125559083,6465550987,,,-1,,581,93,-1 121,101,1,-1,-1,,AAA,,,2135559126,,,-1,,0,85,-1 122,170339,0,-1,-1,,AAA,,5625559067,6465550987,,,-1,,581,93,-1 125,999996,1,-1,-1,,AAA,,,6265559365,,,-1,,0,2561,-1 127,170340,0,-1,-1,,AAA,,5625551234,6465550987,,,-1,,581,93,-1 128,170341,0,-1,-1,,AAA,,5625559148,6465550987,,,-1,,581,93,-1 129,170342,0,-1,-1,,AAA,,5625556789,6465550987,,,-1,,581,93,-1 130,170343,0,-1,-1,,AAA,,5625559210,6465550987,,,-1,,581,93,-1 133,100,1,-1,-1,,AAA,,,6265552486,,,-1,,0,85,-1 134,170344,0,-1,-1,,AAA,,5625553456,6465550987,,,-1,,581,93,-1 135,170345,0,-1,-1,,AAA,,7605559809,6465550987,,,-1,,581,93,-1 137,170257,0,-1,-1,,AAA,,5625556956,6465550987,,,-1,,581,93,-1 I would like to look at file1 and any entry that has "Delete" in $1, look for $2 (from file1) in file2. Then, create a third file, file3, with "D,"$1 of file2. So, the output with the above examples would look like this: file3 D,93 D,110 D,114 D,118 D,125 D,127 D,129 D,133 D,134 D,137 I hope I'm making sense. Any help would be appreciated. Thanks. |
|
||||
|
Not to quibble - but you are not clear. Your example does not match what you said.
take 114,170256,0,-1,-1,,AAA,,5625559876,6465550987,,,-1,,581,93,-1 and Delete,5625559876 This means 'do not print' the 114,...... line. Your output D,114 has the 114 line in it. Several other lines are like this. Did you mean the reverse of what you said? |
|
||||
|
Sorry about that. file1 is a list of numbers that need to be deleted or added. file2 is a list of current numbers and corresponding information. I want file3 to be just the "D," along with the first column of file2 associated with the number marked for deletion in file1.
I tried the script Franklin posted, but I got "syntax error near line 2". I forgot to mention I'm using Solaris 8 if that makes a difference. Thanks. |
|
||||
|
Quote:
Code:
awk -F, 'NR==FNR && /^D/ {a[$2]++;next}
$9 in a || $10 in a {print "D," $1}' file1 file2
Code:
awk -F, Code:
NR==FNR && /^D/ Code:
{a[$2]++;next}
Code:
$9 in a || $10 in a {print "D," $1}'
Regards |
| Sponsored Links | ||
|
|