golang:实现类似tailf命令的功能
支持自动结束tailf命令,本例适用于实时呈现临时文本文件内的日志信息
package mainimport ("bufio""fmt""io""log""os""time"
)var stop = make(chan struct{})func main() {if len(os.Args) != 2 {log.Fatalln("Usage: main <filename>")}fileName := os.Args[1]file, err := os.Open(fileName)if err != nil {log.Fatalf("Open file fail:%v", err)}defer file.Close()// 启动一个goroutine监听文件是否已经被删除,如果是则发送停止信号go func() {for{_, err := os.Lstat(fileName)if os.IsNotExist(err) {stop <- struct{}{}return}time.Sleep(time.Second)}}()reader := bufio.NewReader(file)var tick = time.NewTicker(500 * time.Millisecond)func() {for {select {case <-tick.C:line, err := reader.ReadString('\n')if err != nil {if err != io.EOF {return}}fmt.Print(line)// 判断文本内容中是否有规定的结束字段,此处以DONE字符为例if line == "DONE\n" {return}case <-stop:return}}}()
}
golang:实现类似tailf命令的功能相关推荐
- 利用输入输出流及文件类编写一个程序,可以实现在屏幕显示文本文件的功能,类似DOS命令中的type命令
利用输入输出流及文件类编写一个程序,可以实现在屏幕显示文本文件的功能,类似DOS命令中的type命令 package p1;import java.io.BufferedReader; import ...
- python实现tailf或者filebeat功能
思路历程: 一开始以为小小的tailf命令功能很容易实现 可是真到动手写的时候,还是迷糊了好一会. 到找到一点思路,又掉进代threading.Condition的坑 最后是中间的逻辑,有点绕 功能: ...
- tailf 命令安装
tailf 命令安装: -bash: tailf: command not found #Debian apt-get install util-linux #Ubuntu apt-get insta ...
- Ubuntu(Debian)截图并编辑软件推荐:Flameshot(实现类似QQ的截图功能,具有插入文字功能)
Ubuntu(Debian)截图并编辑软件推荐:Flameshot(实现类似QQ的截图功能) 一 具有文字插入功能的安装教程 1.1 卸载原有的flameshot 1.2 clone github 1 ...
- 组件分享之后端组件——基于Golang实现的database/sql附加功能组件dbr
组件分享之后端组件--基于Golang实现的database/sql附加功能组件dbr 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题, ...
- R语言计算dataframe数据列中各分类的计数(类似pandas value_counts函数功能)
R语言计算dataframe数据列中各分类的计数(类似pandas value_counts函数功能) 目录 R语言计算dataframe数据列中各分类的计数(类似pandas value
- php reids的geo功能,Redis GEO相关命令和功能,你造吗?
Redis 是一个高性能的key-value数据库,其最大优点就是,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用.同时Redis还提供 ...
- 在tomcat上部署项目,实现类似添加这样的功能之后,tomcat要运行很久,解决办法
今天在做软件测试作业的时候遇到了这样一个问题 在tomcat上部署项目,实现类似添加这样的功能之后,一大串子代码不停的在滑动,要运行很久,才会结束,之后上网上查询资料,试着将项目删除重新导入之后,就恢 ...
- istringstream字符串流,实现类似字符串截取的功能,字符串流中的put,str()将流转换成为字符串string
1. istringstream字符串流 #include <iostream> #include <sstream> #include <string> u ...
最新文章
- Android事件的响应,Android 开发事件响应之基于监听的事件响应
- 后续升级鸿蒙系统,荣耀部分机型后续将支持升级为鸿蒙系统
- liferay 指定默认首页
- sweetalert插件的使用
- TikZ绘图示例——尺规作图: 鸭蛋圆形的近似画法
- VMware vRealize Operations Manager的内部版本号(2145975)
- u盘数据恢复的原理_电脑磁盘文件数据误删恢复原理、方法总结
- SpringBoot Maven repackage failed: Unable to find a single main class from the following candidates
- spring 配置属性细节
- 判断 localStorage 在不同浏览器的最大支持内存
- GitHub上下载资源
- halcon安装教程
- python报错:Empty suite
- 亿级 QQ 会员活动运营系统的设计之道
- 工信部发文启动2019网络安全防护赛,是时候对短信验证码说再见了
- 基于web的员工信息管理系统
- Win10工具栏显示桌面的几种方法
- 若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年时有多少头母牛?
- 【过关斩将】如何在工作中提高沟通能力?
- QtAV视频播放器的介绍、编译以及简单使用