看别人代码的时候有时候查看个关键字,但是liteide没有整个项目搜索的功能,就自己随便写了一个.

go的版本是1.4的
package main

import (
	"bufio"
	"flag"
	"fmt"
	"os"
	"path/filepath"
	"regexp"
)

var path *string = flag.String("p", "./", "搜索的路径")
var re_string *string = flag.String("r", "", "关键字")

func main() {
	flag.Parse()
	if *re_string == "" {
		fmt.Println("搜索的关键字不能为空")
		return
	}
	fmt.Println("搜索的路径:", *path, "搜索的关键字:", *re_string)
	re, _ := regexp.Compile(*re_string)
	filepath.Walk(*path, func(path string, info os.FileInfo, err error) error {
		if err != nil {
			return err
		}
		if info.IsDir() {
			return nil
		}
		fmt.Println("文件路径:", path)
		File, _ := os.Open(path)
		r := bufio.NewReader(File)
		for {
			b, _, e := r.ReadLine()
			if e != nil {
				break
			}
			if b, _ := regexp.Match(string([]byte{0}), b); b {
				break
			}
			if re.Match(b) {
				fmt.Println(string(b))
			}
		}
		File.Close()
		return nil
	})
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 20:36:19

看别人代码的时候有时候查看个关键字,但是liteide没有整个项目搜索的功能,就自己随便写了一个.的相关文章

看别人代码时的感受

知乎上看到一个图片, 说的是看别人代码时的感受, 觉得很有趣, 就翻译了一下. 如果您有更贴切的翻译, 希望多指教, 多交流. 好, 废话不多说, 上图: 1. 咋这么多坑? 2. 这样的结构逗我呢? 3. 这货想干吗? 4. 这个注释真是实话; 5. 这么低效的设计真是不敢直视; 6. 这个新装置又是什么鬼?

看别人写的优秀代码,是对自己的一种提高,看别人写的很恶心的代码,对自己也是一种提高:告诉自己不要这样写(转)

这两天,我做了两件事: 1.重构了系统某个模块的部分代码: 花了一天时间,一个6k多行的java文件,搞到4k行加若干个类文件,恕我能力有限,后面的实在重构不下去了,那是一种3个domain属性名几乎一样100多个字段但是却用同一个copy了三遍的方法来处理的欲哭无泪,那是一种使劲滚鼠标滚轮都滚不到一个方法尾部的绝望(100多个字段的几个类属性equals来,equals去,get来,set去的,这样类型的方法有那么五六个,你说能不多吗)...... 2.做了一个日志处理的小工具: 客户要求把日

Java程序员看C++代码

从事了几年的android应用开发,这几年一直都是用Java开发,今年找了一家OEM公司,说白了就是Android系统源码定制,在这家公司学习了Python, C++.因为接触JNI会比较多一点,所以下面想和大家谈谈我看C++代码的一些理解. 我主要是从看代码和维护代码的角度来看,不涉及更深的技术层面.也欢迎大家来一起讨论下各自的理解. 首先我个人非常喜欢C++的头文件.C++的头文件类似于Java1.8的接口,可以在这里面定义好所有的接口方法/虚函数, 我觉得好的头文件应该是数据集+行为规范集

看别人iOS应用的界面和头文件。

一.看别人应用界面 1.准备越狱手机一部,网上搜索一键越狱,会有很多应用. 2.越狱完成安装openSSH和cydia substrate 3.拷贝 scp libReveal.dylib [email protected]设备IP地址:/Library/MobileSubstrate/DynamicLibraries/ 4.拷贝 scp libReveal.plist [email protected]设备IP地址:/Library/MobileSubstrate/DynamicLibrari

在线看图网页版,快速查看CAD图纸

在线看图网页版,快速查看CAD图纸.在日常CAD工作中,我们常常会需要查阅大量的CAD图纸.有时候下载安装CAD看图软件会非常的麻烦,而且占用电脑内存.所以今天小编想给大家分享一中不需要下载安装任何软件,也能在线查看CAD图纸的方法.具体演示步骤如下: 步骤一:我们需要先在浏览器里搜索"xunjieCAD"一词,找到官网网址,进入官网界面. 步骤二:在xunjieCAD官网里,把光标放置在"在线转换"标签上,会出现各种在线转换的选择标签,我们点击"在线看图

软件必备模块-如何看懂代码

为什么写这一篇?因为上班了以后写代码是一个技能,不过大多数时候也时常是现用现差,这个说出来也是丢人.不过生活就是这样吧,不过积累的很重要的一个东西是什么呢,就是运行,调试,搜索相关历史.我们入职一家公司或者接手一个新的项目面临很重要的一个问题就是看懂代码. 找人教,找资料 新接手一个代码,怎么看最快?看书?自己调试?都不是,是找之前写这个代码的人耐心讲给你,不过工作了就发现大家不一定都这么好心.不过万一呢,万一你遇到好人了呢,先找人,再找文档.怎么找人?查看git历史,查看代码中的注释.看开源代

看别人微信聊天记录

看别人微信聊天记录●●高手QQ:705099868●●以前也在网上找过关于[看别人微信聊天记录]以及怎么破解qq聊天记录密码视频,但是都没有找到好的怎么破解qq聊天记录密码方法.无意中接触到这个人,他是专门帮人查QQ密码,微信密码,查QQ聊天记录,恢复微信记录,通话记录,短信,手机定位等,很讲信誉,技术不错. http://www.155588.com

从JVM的角度看JAVA代码--代码优化

从JVM的角度看JAVA代码–代码优化 从JVM的角度看JAVA代码代码优化 片段一反复计算 片段二反复比較 在JVM载入优化为class文件,运行class文件时,会有JIT(Just-In-Time)的介入,它会做进一步优化,这样就须要考虑是否可能被JIT优化. 片段一:反复计算 // 反复计算,这里b()被计算两次 Object a = b() == null ? "" : b(); // 优化代码 Object c = b(); Object a = c == null ? &

GCC扩展(转--对看kernel代码有帮助

Linux Kernel的代码,上次就发现一个结构体的定义形式看不懂,后来才知道它用的不是标准的ANSI C,而是GCC的一些扩展.刚好看到<Linux内核修炼之道>中对GCC扩展有所描述,转载一下吧,对看kernel代码有所帮助. 3.5内核代码的特点 Linux内核同时使用C语言和汇编语言实现,C语言编写的代码移植性较好.易于维护,而汇编语言编写的代码相当于针对特定的平台做了优化,速度较快,所以需要在它们之间寻找一定的平衡. 一般而言,在体系结构的底层或对执行时间要求严格的地方,会使用汇编