gpt4 book ai didi

go - 监视文件的添加并获取最后添加的行

转载 作者:数据小太阳 更新时间:2023-10-29 03:26:16 25 4
gpt4 key购买 nike

我在监控文件更改时遇到问题。我需要能够知道文件何时更改,以及何时更改,我需要添加的新行。我打算解析每一行并找到符合特定条件的行,然后根据这些行中的信息采取行动。我提前知道预期的匹配行数,但我不知道总共有多少行将被添加到文件中,或者匹配行将在哪里。

到目前为止,我已经尝试了 2 个包,但没有用。

fsnotify/fsnotify

据我所知,fsnotify 只能告诉我何时 文件被修改,而不是修改的详细信息。因为我需要知道文件中到底添加了什么,所以这对我没有好处。

(作为附带问题,这可以在循环中运行吗?我尝试的示例仅在修改一次后退出。我需要监视多次修改。)

hpcloud/tail

这个包试图模仿 Unix tail 命令,但它似乎有自己的问题。我得到的输出包括时间戳和其他数据——我只想要添加的行,没有别的。此外,它似乎认为一个文件已被多次修改,即使它只是一次编辑。此外,这里的交易破坏者是如果该行后面没有换行符,它不会输出最后一行。

委托(delegate)给 tail

我遇到了 this答案,建议将这项工作委托(delegate)给 tail 命令本身,但我需要它跨平台工作(特别是 macOS、Linux 和 Windows)。我认为 Windows 上不存在等效命令。

我该如何解决这个问题?

最佳答案

@user2515526,

通常更改的差异超出了文件观察者的功能范围,因为,你知道,你可以改变图像,而观察者需要在内存中跟踪几 Mb 的差异,如果我们有数千个差异怎么办文件?然而,尽管听起来很糟糕,但这可能正是您想要实现的方式(当然,取决于您的应用程序等 - 对于文本文件可能没问题),即 - 保留差异图(每个文件 1 个差异) 自上次修改以来。不能说我喜欢它,但听起来 fsnotify 不支持您需要的更改/差异。

另外,关于你关于循环运行的问题,也许你可以在这里得到一些提示:https://github.com/kataras/iris/blob/8370d76910cdd8de043753ed81ae080eae8dc798/utils/file.go它是一个框架,允许构建一个监视 TypeScript 文件更改的服务器。所以听起来与您的案例/问题相似。

干杯,-D

关于go - 监视文件的添加并获取最后添加的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40921832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com