【Linux命令】在当前目录下查找出现特定字符串的文件位置信息 |
您所在的位置:网站首页 › shell定位字符串位置 › 【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行打印出来 如下图: ![]() 有没有更实用的场景呢,欢迎留言讨论! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |