@Grab(group='com.googlecode.java-diff-utils', module='diffutils', version='1.3.0') import difflib.* // ファイル1の各行を読み込み def lines1 = [] new File("test1.txt").withReader { reader -> while((line = reader.readLine()) != null){ lines1 << line } } // ファイル2の各行を読み込み def lines2 = [] new File("test1b.txt").withReader { reader -> while((line = reader.readLine()) != null){ lines2 << line } } // Diff実行 drg = new DiffRowGenerator.Builder().build() rows = drg.generateDiffRows(lines1, lines2) rows.eachWithIndex { row, idx -> switch(row.getTag()){ case DiffRow.Tag.INSERT: println "INSERTED:${idx}:${row.getNewLine()}" break case DiffRow.Tag.DELETE: println "DELETED:${idx}:${row.getOldLine()}" break case DiffRow.Tag.CHANGE: println "BEFORE:${idx}:${row.getOldLine()}" println "AFTER:${idx}:${row.getNewLine()}" break default: println "${idx}:${row.getOldLine()}" } }
動作環境
groovy 2.1.7, JDK7 update40
0 件のコメント:
コメントを投稿