Need help for finding difference between files

Hi, there

Is there a simple way to find the difference between two files? I’m a
new ruby learner. I’m not familiar with the Stander class in Ruby. Is
there any can find the difference between two files and return a string
or array?

Cheyne Li wrote:

Hi, there

Is there a simple way to find the difference between two files? I’m a
new ruby learner. I’m not familiar with the Stander class in Ruby. Is
there any can find the difference between two files and return a string
or array?

What kinda difference do you wanna look at? is is file attributes?

You can try something like File.compare or File.fnmatch which wll return
true if the file matches…

If it’s not something what you really need, please do explain your
situation abit more and maybe more people might be able to help :wink:

Clement Ow wrote:

Cheyne Li wrote:

Hi, there

Is there a simple way to find the difference between two files? I’m a
new ruby learner. I’m not familiar with the Stander class in Ruby. Is
there any can find the difference between two files and return a string
or array?

What kinda difference do you wanna look at? is is file attributes?

You can try something like File.compare or File.fnmatch which wll return
true if the file matches…

If it’s not something what you really need, please do explain your
situation abit more and maybe more people might be able to help :wink:

Ok, I need to compare the contents in 2 files. Print out each difference
in both files. for example, if i have 2 files: f1.txt, f2.txt

in f1: in f2:
I’m learning ruby. I’m learning ruby.
I’m not good at it. I’m good at it.

So, I want to know if there a function can return an array that contains
“I’m not good at it.” and “I’m good at it.”

I wonder if I have to compare line by line or there is function in Ruby
would do that for me.

On Wed, May 14, 2008 at 11:29 AM, Cheyne Li
[email protected] wrote:

I’m learning ruby. I’m learning ruby.
I’m not good at it. I’m good at it.

So, I want to know if there a function can return an array that contains
“I’m not good at it.” and “I’m good at it.”

I wonder if I have to compare line by line or there is function in Ruby
would do that for me.

If you don’t mind reading the whole files in to memory, you can try
doing something like…

arr1 = File.open(“f1”, “r”).readlines
arr2 = File.open(“f2”, “r”).readlines
arr1 - arr2 # all in arr1 not in arr2
arr2 - arr1 # all in arr2 not in arr1
arr1 || arr2 # all that both share (intersection)
arr1 && arr2 # every line from both (union)

hth,
Todd

On Wed, May 14, 2008 at 11:57 AM, Todd B. [email protected]
wrote:

If you don’t mind reading the whole files in to memory, you can try
doing something like…

arr1 = File.open(“f1”, “r”).readlines
arr2 = File.open(“f2”, “r”).readlines
arr1 - arr2 # all in arr1 not in arr2
arr2 - arr1 # all in arr2 not in arr1
arr1 || arr2 # all that both share (intersection)
arr1 && arr2 # every line from both (union)

Sorry that’s | and &, not || and && and I had it backwards…

arr1 | arr2 # all of both
arr1 & arr2 # all that intersect

sorry for confusion,
Todd

Michael L. wrote:

I wonder if I have to compare line by line or there is function in Ruby
would do that for me.

file1 = File.readlines(“f1.txt”)
file2 = File.readlines(“f2.txt”)

file1&file2
#=> “I’m learning ruby.”

The ‘&’ symbol can be used to compare arrays, it will return any matches
between the 2.

Regards,

  • Mac

Thanks man. I found that using “-” can find all differences

diff = file1 - file2

I wonder if I have to compare line by line or there is function in Ruby
would do that for me.

file1 = File.readlines(“f1.txt”)
file2 = File.readlines(“f2.txt”)

file1&file2
#=> “I’m learning ruby.”

The ‘&’ symbol can be used to compare arrays, it will return any matches
between the 2.

Regards,

  • Mac

Cheyne Li wrote:

Clement Ow wrote:

Cheyne Li wrote:

Hi, there

Is there a simple way to find the difference between two files?

ruby diff-lcs will do this

On Wed, May 14, 2008 at 12:32 AM, Clement Ow
[email protected]