我在监视文件更改时遇到问题。我需要能够知道文件何时发生更改,何时发生,我需要添加的新行。我打算分析每一行并找到符合某些标准的行,并根据这些行中的信息采取行动。我知道预期的匹配行数,但我不知道总共有多少行会被添加到文件中,或者匹配行的位置。监视添加的文件并获取最后添加的行
到目前为止,我已经尝试了2个软件包,但都无济于事。
由于FAS我可以告诉大家,fsnotify
只能告诉我当文件被修改,不是什么修改的细节了。由于我需要知道添加到文件中的内容,这对我来说并不合适。
(作为一个侧面的问题,可以这样在一个循环运行?只是一个修改后,我试图退出的示例我需要监视多个修饰。)
这个软件包试图模仿Unix tail
命令,但它似乎有它自己的问题。我得到的输出包括时间戳和其他数据 - 我只想要添加的行,没有别的。此外,它似乎认为一个文件已被多次修改,即使它只是一个编辑。此外,这里的交易断路器是,如果行后面没有换行符,它不会输出最后一行。
委派到tail
我碰到this答案,这表明委派这项工作的tail
命令本身,但我想这能跨平台工作(具体的MacOS,Linux和Windows)。我不相信在Windows上存在一个等效的命令。
我该如何解决这个问题?
有什么错与'hpcloud/tail'额外的信息?您仍然可以获得附加数据。 – JimB
@JimB这并不理想,但我可以解决它。我不能使用'hpcloud/tail'的主要原因是因为如果没有换行符,它不会输出最后一行。 – tverghis
你当然可以使用fsnotify,然后根据收到的通知根据需要读取文件。我不知道使用Go编写的更完整的“tail -f”包(但异地推荐无论如何都是脱离主题的) – JimB