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) hth, Todd