【Linux命令】在当前目录下查找出现特定字符串的文件位置信息
2021/7/24 7:09:39
本文主要是介绍【Linux命令】在当前目录下查找出现特定字符串的文件位置信息,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
有时候我们我会碰到这样的问题:我要查找一个字符串在多个文件里总共出现了几次,或者一个方法、一个函数在项目里调用了几次,都在哪里调用,那我们要如何查找,如何统计这些信息呢?
场景复现
首先,要查找字符串,肯定优先考虑全局搜索命令grep(global search regular expression and print out the line:正则匹配全局搜索并打印行)。如果搜索的范围比较不明确,只知道在某个文件夹下,那可以先cd该目标路径,然后用以下最简单的命令:
grep -rn "待匹配字符串" ./
r :表示递归,
n :表示查询结果显示行号
结果是这样的:
【文件路径】:【行号】 【当前行信息】
如下图:
如果你知道的范围缩小了,或者只想在一些特定类型的文件中查找,比如,只想在该目录下的所有java文件查找,可以用以下的方式:
find ./ -type f -name "*.java" | xargs grep -rn "待匹配字符串"
如下图:
该命令的作用是在当前目录下,查找所有java文件,然后将每个文件的路径作为参数传给
grep "待匹配字符串"
命令,最终输出结果,换句话说,就是只在当前目录下的java文件中查找字符串
可能你拿到结果,还想记录到文件中,那么可以用以下命令:
touch file.txt
find ./ -type f -name "*.java" | xargs grep -rn "待匹配字符串" | info.txt
该命令将上面的结果通过管道输出到文件中,再配合一波excel,想干啥干啥
文件里就写入了,如下图
然后你又说我不用记录,只想统计在该目录下的java文件里出现了几次,那就用:
find ./ -type f -name "*.java" | xargs grep -rn "待匹配字符串" | wc -l
如下图:
你可能又会说,我我查的字符串是个方法名,我想查看一下后面的函数体实现,但查出的文件路径好长,懒得cd进去,那你可以估算一下方法体的行数大小,从上面查询到的文件路径和行号信息,执行一下命令直接看
sed -n 100,200p "file.java的路径"
该命令会将模板文件的100-200行打印出来
如下图:
有没有更实用的讨论呢,欢迎留言讨论!
这篇关于【Linux命令】在当前目录下查找出现特定字符串的文件位置信息的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南