Todd Benson
5/14/2008 5:01:00 PM
On Wed, May 14, 2008 at 11:57 AM, Todd Benson <caduceass@gmail.com> wrote:
> On Wed, May 14, 2008 at 11:29 AM, Cheyne Li
> <happy.go.lucky.clr@gmail.com> wrote:
>> 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 ;)
>>
>> 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.
>
> 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