Comparing 2 files and return the unique lines in first file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Comparing 2 files and return the unique lines in first file
# 1  
Old 01-28-2009
Comparing 2 files and return the unique lines in first file

Hi,

I have 2 files

file1
********
01-05-09|java.xls|
02-05-08|c.txt|
08-01-09|perl.txt|
01-01-09|oracle.txt|
********

file2
********
01-02-09|windows.xls|
02-05-08|c.txt|
01-05-09|java.xls|
08-02-09|perl.txt|
01-01-09|oracle.txt|
********

I have to compare these 2 files and return the different lines lines in file1.

Output Expected
*****
08-01-09|perl.txt|
*****

I have tried with diff & comm commands but nothing is giving exact output.

Thanks
# 2  
Old 01-28-2009
Code:
awk 'NR==FNR{a[$0];next}!($0 in a)' file2 file1

Regards
# 3  
Old 01-28-2009
Neither 08-02-09|perl.txt| nor 02-05-08|c.txt nor 01-02-09|windows.xls| are in file1, so what don't you want those other two as output?

Or do you want to find lines in file1 where the 2nd field matches those in file2 but the others do not? In that case you could so something like:
Code:
  sort file2 >file2.sorted
  # 1. Find all lines in file1 that match the second field of file2
  awk -F\| '{ print $2 }' file2 |sort -u |
  grep -f- -F file1 | 
  # print lines only in file1
  comm -1 -3 file2.sorted -


Last edited by otheus; 01-28-2009 at 07:00 AM.. Reason: must sort file2
# 4  
Old 01-28-2009
Hi franklin,

Its giving sysntax error.


awk: syntax error near line 1
awk: bailing out near line 1


Thanks.

Quote:
Originally Posted by Franklin52
Code:
awk 'NR==FNR{a[$0];next}!($0 in a)' file2 file1

Regards
# 5  
Old 01-28-2009
Quote:
Originally Posted by shekhar_v4
Hi franklin,

Its giving sysntax error.


awk: syntax error near line 1
awk: bailing out near line 1


Thanks.
Use nawk, gawk or /usr/xpg4/bin/awk on Solaris.

Regards
# 6  
Old 01-28-2009
hi franklin, care to explain what the awk statement means? thanks
# 7  
Old 01-28-2009
Quote:
Originally Posted by npatwardhan
hi franklin, care to explain what the awk statement means? thanks
Code:
NR==FNR

If we read the first file.

Code:
{a[$0];next}

Define an array with the name a with the index $0 and read the next line.

Action for the second file:

Code:
!($0 in a)

Print the line if a[$0] is not defined.

Regards
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell Scripting | Return list of unique characters in files

Hi, I am trying to script the below, but I am not very good at it :( Your help would be greatly appreciated. 1. read all files in the directory in strings strings *.* 2. in each file, for each line that contains "ABCD", store characters located at position 521 and 522 of this line... (9 Replies)
Discussion started by: clippertm
9 Replies

2. Shell Programming and Scripting

Using grep and a parameter file to return unique values

Hello Everyone! I have updated the first post so that my intentions are easier to understand, and also attached sample files (post #18). I have over 500 text files in a directory. Over 1 GB of data. The data in those files is organised in lines: My intention is to return one line per... (23 Replies)
Discussion started by: clippertm
23 Replies

3. Shell Programming and Scripting

Comparing 2 text files & downloading a file if the last lines are different

Hello I'm having a little difficulty in writing a shell script for a few simple tasks. First I have two files "file1.txt" and "file2.txt" and I want to read and compare the last line of each file. The files look like this. File1.txt File2.txt After comparing the two lines I would... (2 Replies)
Discussion started by: RustikGaming
2 Replies

4. Shell Programming and Scripting

compare 2 files and return unique lines in each file (based on condition)

hi my problem is little complicated one. i have 2 files which appear like this file 1 abbsss:aa:22:34:as akl abc 1234 mkilll:as:ss:23:qs asc abc 0987 mlopii:cd:wq:24:as asd abc 7866 file2 lkoaa:as:24:32:sa alk abc 3245 lkmo:as:34:43:qs qsa abc 0987 kloia:ds:45:56:sa acq abc 7805 i... (5 Replies)
Discussion started by: anurupa777
5 Replies

5. UNIX for Dummies Questions & Answers

getting unique lines from 2 files

hi i have used comm -13 <(sort 1.txt) <(sort 2.txt) option to get the unique lines that are present in file 2 but not in file 1. but some how i am getting the entire file 2. i would expect few but not all uncommon lines fro my dat. is there anything wrong with the way i used the command? my... (1 Reply)
Discussion started by: anurupa777
1 Replies

6. Shell Programming and Scripting

Comparing files and capture return code

Hi, I would like to compare 2 files, and have a return code write to a file. regardless of the files contents are the same the code should be writing to a file (if both files contents are same then return code 0). A simple example will be great :) Thanks (3 Replies)
Discussion started by: khchong
3 Replies

7. UNIX for Advanced & Expert Users

In a huge file, Delete duplicate lines leaving unique lines

Hi All, I have a very huge file (4GB) which has duplicate lines. I want to delete duplicate lines leaving unique lines. Sort, uniq, awk '!x++' are not working as its running out of buffer space. I dont know if this works : I want to read each line of the File in a For Loop, and want to... (16 Replies)
Discussion started by: krishnix
16 Replies

8. UNIX for Dummies Questions & Answers

Getting non unique lines from concatenated files

Hi All, Is there a way to get NON unique lines from 2 or more concatenated files? Basically I have several files which are very similar with the exception of few lines and I want to find out which lines are different in each file. Very simple example is file1 contains: 1 2 3 4 5file2... (122 Replies)
Discussion started by: pawannoel
122 Replies

9. Shell Programming and Scripting

return a list of unique values of a column from csv format file

Hi all, I have a huge csv file with the following format of data, Num SNPs, 549997 Total SNPs,555352 Num Samples, 157 SNP, SampleID, Allele1, Allele2 A001,AB1,A,A A002,AB1,A,A A003,AB1,A,A ... ... ... I would like to write out a list of unique SNP (column 1). Could you... (3 Replies)
Discussion started by: phoeberunner
3 Replies

10. Shell Programming and Scripting

comparing 2 text files to get unique values??

Hi all, I have got a problem while comparing 2 text files and the result should contains the unique values(Non repeatable). For eg: file1.txt 1 2 3 4 file2.txt 2 3 So after comaping the above 2 files I should get only 1 and 4 as the output. Pls help me out. (7 Replies)
Discussion started by: smarty86
7 Replies
Login or Register to Ask a Question