Help with file comparison


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with file comparison
# 1  
Old 10-18-2011
Help with file comparison

Hello, I am trying to compare 2 files and get only the new lines as output. Note that new lines can be anywhere in the file and not necessarily at the bottom of the file.

I have made the following progress so far.
Code:
/home/aa>cat old.txt
0001    732     A
0002    732     C
0005    732     D
0010    732     B
/home/aa>cat new.txt
0001    732     A
0002    732     AC
0003    801     A
0005    732     D
0006    908     Z
0010    732     B
0011    512     X
0012    732     Z
/home/aa>sdiff old.txt new.txt | egrep  '\\|>'          
> 0003    801     A
0010    732     B \ 0006    908     Z
> 0010    732     B
> 0011    512     X
> 0012    732     Z

Expected output
Code:
0003    801     A
0006    908     Z
0011    512     X
0012    732     Z

How do I do a cut to get the string after '> ' or '\ ' ?

Is there any easier way than using sdiff, grep and cut?
Smilie

Moderator's Comments:
Mod Comment Please use code tags

Last edited by cartrider; 10-18-2011 at 05:27 PM.. Reason: code tags, see PM
# 2  
Old 10-18-2011
Hi cartrider,

Could this be useful for you?
Code:
 $ cat new.txt | grep -v - -f old.txt
0002 732 AC                                                                                                                                                                                                                                  
0003 801 A                                                                                                                                                                                                                                   
0006 908 Z                                                                                                                                                                                                                                   
0011 512 X                                                                                                                                                                                                                                   
0012 732 Z

Regards,
Birei
# 3  
Old 10-18-2011
Birei,
Thanks for the update. Note that the first line in your output is a 'Change' line. I am looking for only 'New' lines.
Also note the following error I am getting executing the same command as yours.

Code:
/home/aa>cat new.txt | grep -v - -f old.txt
grep: can't open -f
old.txt:0001    732     A
old.txt:0002    732     C
old.txt:0005    732     D
old.txt:0010    732     B

Thanks
cartrider

Last edited by cartrider; 10-18-2011 at 05:28 PM..
# 4  
Old 10-18-2011
Code:
nawk 'FNR==NR{f1[$0];next} !($0 in f1)' old.txt new.txt

# 5  
Old 10-18-2011
vgersh99,
Output should exclude line 0002 as this is a change line not a new line.
Code:
/home/aa>nawk 'FNR==NR{f1[$0];next} !($0 in f1)' old.txt new.txt
0002    732     AC
0003    801     A
0006    908     Z
0011    512     X
0012    732     Z

# 6  
Old 10-18-2011
Quote:
Originally Posted by cartrider
vgersh99,
It still does not return line starting with 0010 which is a new line. Output should exclude line 0002 as this is a change line not a new line.
Code:
/home/aa>nawk 'FNR==NR{f1[$0];next} !($0 in f1)' old.txt new.txt
0002    732     AC
0003    801     A
0006    908     Z
0011    512     X
0012    732     Z

What's the key? The first field in both files?
Code:
nawk 'FNR==NR{f1[$1];next} !($1 in f1)' old.txt new.txt

# 7  
Old 10-19-2011
vgresh99,

This is a very good solution when there is a key. I wonder if it is possible to get the expected output when there is no key.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

File Comparison

HI, I have two files and contains many Fields with | (pipe) delimitor, wanted to compare both the files and get only unmatched perticular fields. this i wanted to use in shell scriting. ex: first.txt 111 |abc| 230| hbc231 |bbb |210 |bbd405 |ghc |555 |cgv second.txt 111 |abc |230 |hbc231... (1 Reply)
Discussion started by: prawinmca
1 Replies

2. Shell Programming and Scripting

File Comparison: Print Lines not present in another file

Hi, I have fileA.txt like this. B01B02 D0011718 B01B03 D0012540 B01B04 D0006145 B01B05 D0004815 B01B06 D0012069 B01B07 D0004064 B01B08 D0011988 B01B09 D0012071 B01B10 D0005596 B01B11 D0011351 B01B12 D0004814 B01C01 D0011804 I want to compare this against another file (fileB.txt)... (3 Replies)
Discussion started by: genehunter
3 Replies

3. Shell Programming and Scripting

file comparison

Dear All, I would really appreciate if you can help me to resolve this file comparison I have two files: file1: chr start end ID gene_name chr1 2020 3030 1 test1 chr1 900 5000 2 test1 chr2 5000 8000 3 test2 chr3 6000 12000 4 test3 chr3 6000 15000 5 test3 file2:... (2 Replies)
Discussion started by: paolo.kunder
2 Replies

4. Shell Programming and Scripting

CSV file comparison

Hi all, i have two .csv files. i need to compare those two files and if there is any difference that should be moved into third .csv file. example, org.csv and dup.csv when we compare those two files org.csv and dup.csv. if there is any change in dup.csv. it should be capture in third... (7 Replies)
Discussion started by: baskivs
7 Replies

5. Shell Programming and Scripting

two file comparison

now i have a different file zoo.txt with content 123|zoo 234|natan 456|don and file rick.txt with contents 123|dog|pie|pep 123|tail|see|newt 456|som|sin|sim 234|pay|rat|cat i want to look for lines in file zoo.txt column1 that has same corresponding lines in column 1 of... (6 Replies)
Discussion started by: dealerso
6 Replies

6. Shell Programming and Scripting

File Comparison

Hi i have 2 csv files a.csv and b.csv with the same number of columns and a list of values in both of it. Each and every individual value in both the files need to compared and if it matches then print correct in a new csv file otherwise print Incorrect eg a.csv 1,12/27/2007,Reward,$10.00... (5 Replies)
Discussion started by: naveenn08
5 Replies

7. Shell Programming and Scripting

File Comparison- Need help

I have two text files which have records of thousand rows. Each row is having around 40 columns. Each column is tab delimited. Each row is delimited by newline character. My requirement is to find for each row i need to find whether any column is different between the two files. For each row i... (8 Replies)
Discussion started by: uihnybgte
8 Replies

8. Shell Programming and Scripting

file comparison

hi I have 2 files to comapre ,in file a sible column it is numbers,in file b2 numbers and other values with coma separated. i want compare numbers in file a with file b,and the out put put should be in C with numbers in both file a and b along with other columns of file b. i used folowing... (7 Replies)
Discussion started by: satish.res
7 Replies

9. UNIX for Dummies Questions & Answers

file comparison...help needed.

Hello all, Can anyone help me with this. There are two files and I have to match the second file records with that of first and if matched, print the output in two fies, one containing the matched records and other containing the rest. Here is the example. File1 "111",erter,"00000", ... (4 Replies)
Discussion started by: er_ashu
4 Replies

10. Shell Programming and Scripting

File Comparison

I have to compare two text files, very few of the lines in these files will have some difference in some column. The files size is in GB. Sample lines are as below: 11111122222222333333aaaaaaaaaabbbbbbbbbccccccccdddddd 11111122222222333333aaaaaaaaaabbbbbbbbbccccccccddeddd So assuming these... (19 Replies)
Discussion started by: net_shree
19 Replies
Login or Register to Ask a Question