• ベストアンサー

テキストファイルの差分を取得するには?

2つのテキストファイルの差分を取得したいと思っています。 rubyを使用してdiffコマンドの様な事は可能でしょうか? テキストを1行ずつ配列に入れて - で比較していく方法を使用してみたのですが、途中で行数が変わるような変更が起こっていると上手く動作できませんでした。 理想としては一部が変更された行、追加された行、削除された行といった物を取得したいです。 もし上手く解決出来る様な手法がありましたら、ご教示お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.2

diffは結構高度なことをやっているので、同じようなことをやるのは大変です。 それこそRubyからdiffを呼び出せば良いのですが、 それか、diff-lcsというのがありますので、それを使われてはいかがでしょうか。 http://rubygems.org/gems/diff-lcs rubygemsでインストールできます。他にもdiffから始まるものがたくさん有りますので、利用可能かもしれません。

その他の回答 (1)

回答No.1

open('test1.txt').readlines - open('test2.txt').readlines readlinesで配列として格納し差分を取得すればよろしいかと?