sergi/go-diff
GitHub: sergi/go-diff
Go 语言的文本差异比较、模糊匹配和补丁算法库,提供高效的纯文本同步与变更检测能力。
Stars: 2083 | Forks: 227
# go-diff [](https://godoc.org/github.com/sergi/go-diff/diffmatchpatch) [](https://travis-ci.org/sergi/go-diff) [](https://coveralls.io/r/sergi/go-diff?branch=master)
go-diff 提供了用于执行同步纯文本所需操作的算法:
- 比较两段文本并返回它们的差异。
- 对文本执行模糊匹配。
- 将补丁应用到文本上。
## 安装
```
go get -u github.com/sergi/go-diff/...
```
## 用法
以下示例比较了两段文本,并将差异写入标准输出。
```
package main
import (
"fmt"
"github.com/sergi/go-diff/diffmatchpatch"
)
const (
text1 = "Lorem ipsum dolor."
text2 = "Lorem dolor sit amet."
)
func main() {
dmp := diffmatchpatch.New()
diffs := dmp.DiffMain(text1, text2, false)
fmt.Println(dmp.DiffPrettyText(diffs))
}
```
## 发现了 bug 或者你在 go-diff 中缺少某个功能?
请确保你使用的是最新版本的 go-diff。如果问题仍然存在,请先查看问题追踪器中的[未解决问题](https://github.com/sergi/go-diff/issues)。如果你找不到你的请求,只需提交一个[新 issue](https://github.com/sergi/go-diff/issues/new)。
## 起源
go-diff 是 Neil Fraser 的 google-diff-match-patch 代码的 Go 语言移植版。他的原始代码可在 [http://code.google.com/p/google-diff-match-patch/](http://code.google.com/p/google-diff-match-patch/) 找到。
## 版权和许可
原始的 Google Diff, Match and Patch 库采用 [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) 授权。该许可的完整条款包含在此处的 [APACHE-LICENSE-2.0](/APACHE-LICENSE-2.0) 文件中。
Diff, Match and Patch 库
这个 Go 版本的 Diff, Match and Patch 库采用 [MIT License](http://www.opensource.org/licenses/MIT)(又名 Expat License)授权,包含在此处的 [LICENSE](/LICENSE) 文件中。
Go 版本的 Diff, Match and Patch 库
特此免费授予任何获得本软件及相关文档文件(以下简称“软件”)副本的人无限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许向其提供本软件的人如上所述处理本软件,但须符合以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。
本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权保证。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易引起的或与之相关的任何索赔、损害或其他责任承担责任,无论是在合同诉讼、侵权行为还是其他诉讼中。
标签:EVTX分析, 日志审计