Compare two files with repeated lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Compare two files with repeated lines
# 1  
Old 09-28-2014
Compare two files with repeated lines

Hi all,

I've been trying to write a script to compare two files. This is what I want:

file 1:
Code:
a 1 2
b 5 9
c 4 7

file 2:
Code:
a
a 
c
a
b

Output:
Code:
a 1 2
a 1 2
c 4 7
a 1 2
b 5 9

I have tried with awk:
Code:
awk 'NR==FNR{A[$1]=$1;next} A[$1]{$2=A[$1];print}' file2 file1

But it seems does not take into account the repeated lines, because the output I get it is the same of the file 1.

Do you know any way of doing this? Thanks in advance.
# 2  
Old 09-28-2014
Quote:
Originally Posted by ernesto561
Hi all,

I've been trying to write a script to compare two files. This is what I want:

file 1:
Code:
a 1 2
b 5 9
c 4 7

file 2:
Code:
a
a 
c
a
b

Output:
Code:
a 1 2
a 1 2
c 4 7
a 1 2
b 5 9

I have tried with awk:
Code:
awk 'NR==FNR{A[$1]=$1;next} A[$1]{$2=A[$1];print}' file2 file1

But it seems does not take into account the repeated lines, because the output I get it is the same of the file 1.

Do you know any way of doing this? Thanks in advance.
Hello ernesto561,

Following my help you in same.

Code:
awk 'FNR==NR{A[$1]=$0;next} ($1 in A){print A[$1]}' file1 file2

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Old 09-28-2014
Thanks. It works perfectly. I spent some time trying to figure out the problem, now I understand that it was related to 'FNR=NR'. Thanks again.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare two files and lines which are the same just delete it

I am having a two files and different days, and this is example: file1: 06.09.2017. abcd 123 file2: 07.09.2017. abcd 1234 So what I want is that file2 with today's date contains only 1234, so where is a problem you would ask? Problem is here that I put these commands into routers,. and... (3 Replies)
Discussion started by: tomislav91
3 Replies

2. Shell Programming and Scripting

Compare lines between two files

I have two files I need to compare these two files and take the lines that are common in both the files and consider the line present in second file for my further processing I have used "Awk" along with "FNR and NR" but that is not working gawk -F= ' > FNR==NR {a=$1; next}; > ... (2 Replies)
Discussion started by: Priya Amaresh
2 Replies

3. UNIX for Dummies Questions & Answers

Compare lines in 2 files

I have 2 files with exactly the same information (with header and separated by ";") and what I would like to do is print (for both files!) the columns that are different and also print the "key" column that is equal in the 2 files For example, if File1: key1;aaa;bbb;ccc key2;ddd;eee;fff... (4 Replies)
Discussion started by: mvalonso
4 Replies

4. Shell Programming and Scripting

Compare files by lines and columns

Inspired by the extremely short awk code from Ygor on this post I wanted to compare two files on only one field. I can't get it to work. Can anybody help on explaining the code and fix the code? My code which does not work: awk 'BEGIN{a=1};a!=1' file1.txt file2.txt >outfile.txt file1.txt... (1 Reply)
Discussion started by: sdf
1 Replies

5. Shell Programming and Scripting

Compare 2 files, 2 lines at a time

Hi Guys, I want to find any differences between packages installed on 2 servers/zones. I have 2 files that contain the output from pkginfo -x . I want to know if any packages exist only in one file and I want to also know about any packages that exist in both but with a different version. ie:... (8 Replies)
Discussion started by: Tornado
8 Replies

6. Shell Programming and Scripting

compare files and then remove some lines

Hi everyone I have a dilemma and I'm hoping someone has an answer for me. I have two files: # cat masterfile line3 line4 line5 line6 line7 # cat tempfile line1 line2 line3 line4 I want to compare tempfile with masterfile. (3 Replies)
Discussion started by: soliberus
3 Replies

7. Shell Programming and Scripting

Compare two files and print the two lines with difference

I have two files like this: #FILE 1 ABCD 4322 26485 JMTJ 5311 97248 XMPJ 4321 58978 #FILE 2 ABCD 4321 26485 JMTJ 5311 97248 XMPJ 4321 68978 What to do: Compare the two files and find those lines that doesn't match. And have a new file like this: #FILE 3 "from file 1" ABCD 4322 26485... (11 Replies)
Discussion started by: kingpeejay
11 Replies

8. Shell Programming and Scripting

compare two files and to remove the matching lines on both the files

I have two files and need to compare the two files and to remove the matching lines from both the files (4 Replies)
Discussion started by: shellscripter
4 Replies

9. Shell Programming and Scripting

compare files by lines and columns

Dear All, Is it possible to compare 2 files line to line using column values? for example I have file1: 1;givi;01012000;wer 2;sss;02012000;rrr 3;ccc;03012000;ttt file 2: 0;uuu;01012000;lll 1;givi;01012000;wer 2;sss;02012000;rrr 3;ccc;03012000;ttt 5;givi;01012000;hhh I want... (4 Replies)
Discussion started by: giviut
4 Replies

10. Shell Programming and Scripting

Trying to compare lines in 2 files

Hello, I am new to scripting and need some help. In looking at other posts on this forum, I came up with the following logic. I cannot figure out why I am getting names of files of the current directory in my echo output. Scenario: message file has a line containing the version. Version.txt... (2 Replies)
Discussion started by: brdholman
2 Replies
Login or Register to Ask a Question