支持自动结束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命令的功能相关推荐

  1. 利用输入输出流及文件类编写一个程序,可以实现在屏幕显示文本文件的功能,类似DOS命令中的type命令

    利用输入输出流及文件类编写一个程序,可以实现在屏幕显示文本文件的功能,类似DOS命令中的type命令 package p1;import java.io.BufferedReader; import ...

  2. python实现tailf或者filebeat功能

    思路历程: 一开始以为小小的tailf命令功能很容易实现 可是真到动手写的时候,还是迷糊了好一会. 到找到一点思路,又掉进代threading.Condition的坑 最后是中间的逻辑,有点绕 功能: ...

  3. tailf 命令安装

    tailf 命令安装: -bash: tailf: command not found #Debian apt-get install util-linux #Ubuntu apt-get insta ...

  4. Ubuntu(Debian)截图并编辑软件推荐:Flameshot(实现类似QQ的截图功能,具有插入文字功能)

    Ubuntu(Debian)截图并编辑软件推荐:Flameshot(实现类似QQ的截图功能) 一 具有文字插入功能的安装教程 1.1 卸载原有的flameshot 1.2 clone github 1 ...

  5. 组件分享之后端组件——基于Golang实现的database/sql附加功能组件dbr

    组件分享之后端组件--基于Golang实现的database/sql附加功能组件dbr 背景 近期正在探索前端.后端.系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题, ...

  6. R语言计算dataframe数据列中各分类的计数(类似pandas value_counts函数功能)

    R语言计算dataframe数据列中各分类的计数(类似pandas value_counts函数功能) 目录 R语言计算dataframe数据列中各分类的计数(类似pandas value

  7. php reids的geo功能,Redis GEO相关命令和功能,你造吗?

    Redis 是一个高性能的key-value数据库,其最大优点就是,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用.同时Redis还提供 ...

  8. 在tomcat上部署项目,实现类似添加这样的功能之后,tomcat要运行很久,解决办法

    今天在做软件测试作业的时候遇到了这样一个问题 在tomcat上部署项目,实现类似添加这样的功能之后,一大串子代码不停的在滑动,要运行很久,才会结束,之后上网上查询资料,试着将项目删除重新导入之后,就恢 ...

  9. istringstream字符串流,实现类似字符串截取的功能,字符串流中的put,str()将流转换成为字符串string

     1. istringstream字符串流 #include <iostream> #include <sstream> #include <string> u ...

最新文章

  1. Android事件的响应,Android 开发事件响应之基于监听的事件响应
  2. 后续升级鸿蒙系统,荣耀部分机型后续将支持升级为鸿蒙系统
  3. liferay 指定默认首页
  4. sweetalert插件的使用
  5. TikZ绘图示例——尺规作图: 鸭蛋圆形的近似画法
  6. VMware vRealize Operations Manager的内部版本号(2145975)
  7. u盘数据恢复的原理_电脑磁盘文件数据误删恢复原理、方法总结
  8. SpringBoot Maven repackage failed: Unable to find a single main class from the following candidates
  9. spring 配置属性细节
  10. 判断 localStorage 在不同浏览器的最大支持内存
  11. GitHub上下载资源
  12. halcon安装教程
  13. python报错:Empty suite
  14. 亿级 QQ 会员活动运营系统的设计之道
  15. 工信部发文启动2019网络安全防护赛,是时候对短信验证码说再见了
  16. 基于web的员工信息管理系统
  17. Win10工具栏显示桌面的几种方法
  18. 若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年时有多少头母牛?
  19. 【过关斩将】如何在工作中提高沟通能力?
  20. QtAV视频播放器的介绍、编译以及简单使用

热门文章

  1. Java刺客信条回复生命_《刺客信条英灵殿》回复生命值方法 怎么回血
  2. excel2010单元格,如何批量合并单元格
  3. 免费开源的内网穿透工具,类似花生壳
  4. java史努比_Java八大排序
  5. 超声波探伤器上位机设计
  6. 1.2、操作系统的特征
  7. Android图像识别扫名片识别技术SDK
  8. 【有利可图网】PS实战系列:学会了这个调色小技巧,你也能点石成金
  9. code sourcery
  10. 思科、华为:GRE 介绍和配置