go语言文件正则表达式搜索功能示例

package main import ( "fmt" "os" "path/filepath" "regexp" ) func main() { // 命令行参数 args := os.Args // 检查参数 if len(args) == 1 { fmt.Println("ff is a file find tool. use like bottom") fmt.Println("ff [dir] [regexp]") return } if len(args) < 3 { fmt.Println("args < 3") return } fileName := args[1] pattern := args[2] file, err := os.Open(fileName) if err != nil { fmt.Println(err) return } fi, err := file.Stat() if err != nil { fmt.Println(err) return } if !fi.IsDir() { fmt.Println(fileName, " is not a dir") } reg, err := regexp.Compile(pattern) if err != nil { fmt.Println(err) return } // 遍历目录 filepath.Walk(fileName, func(path string, f os.FileInfo, err error) error { if err != nil { fmt.Println(err) return err } if f.IsDir() { return nil } // 匹配目录 matched := reg.MatchString(f.Name()) if matched { fmt.Println(path) } return nil }) }

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2017-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN技术头条

HTML基础知识总结

几个工具: IETester:多版本IE测试 Expression Web DreamWeaver 美工页面 XHTML:符合XML标准的HTML。 标签...

28950
来自专栏吾爱乐享

php学习之css小结1

18030
来自专栏十月梦想

bootstrap表格

条纹表格.table-striped(作用在table的class类名),实现隔行换色

10120
来自专栏欧阳大哥的轮子

Android中的视图焦点Focus的详细介绍

在非触摸屏设备中接收事件和处理响应的控件是具有焦点(Focused)的控件。一个窗口中一个时间内只能有一个具有焦点的控件。在早期具有滚轮设备的android系统...

16320
来自专栏数据结构与算法

08:石头剪刀布

08:石头剪刀布 总时间限制: 1000ms 内存限制: 65536kB描述 石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,...

47970
来自专栏用户画像

一个简单的卡动车排队系统

7420
来自专栏DeveWork

解决Chrome或其它WebKit浏览器input和textarea的黄色/蓝色边框问题

之前在折腾主题的时候发现一个很怪的现象,在Chrome浏览器下,输入框有一个黄色的边框;而在其它WebKit浏览器(如Jeff使用的傲游浏览器)下,输入框的颜色...

32160
来自专栏程序员八阿哥

开心学前端(一):HTML、CSS入门(1)1.1 html概述及html文档基本结构1.2 html标签入门

HTML是 HyperText Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网页的语...

19810
来自专栏青玉伏案

IOS开发之绝对布局和相对布局(屏幕适配)

之前如果做过Web前端页面的小伙伴们,看到绝对定位和相对定位并不陌生,并且使用起来也挺方便。在IOS的UI设计中也有绝对定位和相对定位,和我们的web前端的绝对...

33460
来自专栏编程

前端学习自学笔记:day01

在这里要跟大家说声抱歉,本人拖更太久啦.现在在自学前端,我每天会把自己的总结笔记发上来分享给大家,希望对大家有帮助. 在此之前先为大家显示下前端工程师的路线图:...

22150

扫码关注云+社区

领取腾讯云代金券