列出某目录下包含某字符串的文件以及个数(不包含的除外)

2024-06-10 17:58

本文主要是介绍列出某目录下包含某字符串的文件以及个数(不包含的除外),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

递归列出某目录下包含某字符串的Java文件以及个数(不包含的除外)并按倒序排列

方法一:

$ find  . -name "*.java" | xargs grep -c "Auto" | awk -F ":" '($2>0) {print $0}' |  sort -t ":" -k 2,2nr

 

方法二:

$ find . -name "*.java"  |  xargs grep  "Auto" | awk -F ":" '{a[$1]++}END{for(i in a) {print i,a[i]}}' | sort -k 2,2nr

方法1详解:

1)grep -c "字符串" 文件名   列出某文件中含有某字符串的个数

$ grep -c "Auto" ./atfcapi-tools-data/src/main/java/db/tables/records/AutoSoaResultRecord.java
46

2)递归列出目录下某字符串的Java文件以及个数

$      find  . -name "*.java" | xargs grep -c "Auto"
./atfcapi-tools-data/src/main/java/atfcapi/tools/db/tables/ResponseKey.java:0
./atfcapi-tools-data/src/main/java/atfcapi/tools/db/tables/records/HttpThriftAutoscanConfRecord.java:30
./atfcapi-tools-data/src/main/java/atfcapi/tools/db/tables/records/PictLogRequestRecord.java:0
./atfcapi-tools-data/src/main/java/atfcapi/tools/db/tables/records/PressureConfigRecord.java:7
./atfcapi-tools-data/src/main/java/atfcapi/tools/db/tables/SoaAutoscanConf.java:28

3) 从2 中取出个数为0 的

$      find  . -name "*.java" | xargs grep -c "Auto" | awk -F ":" '($2>0) {print $0}'

awk将结果每行按照“:”分割, 读取第二个域,只打印第二个域大于0的

4)对结果进行排序

find  . -name "*.java" | xargs grep -c "Auto" | awk -F ":" '($2>0) {print $0}' |  sort -t ":" -k 2,2nr

对结果截取第二个域名 并按照第二个域排序 

sort 按照某个域排序  sort -k n,n就是按照第 n个域排序, 为什么写2,2呢?第一个2是排序的起始域,第二个2是是排序的终止域

在本例中如果写下面的命令结果也是一样的

因为“./atfcapi-tools-data/src/main/java/atfcapi/tools/db/tables/SoaAutoscanConf.java:28”使用":"分割后只有两个域,如果有更过的域, 写成 sort -k 2的话就是按照第二个域以后所有的字符来排序

find  . -name "*.java" | xargs grep -c "Auto" | awk -F ":" '($2>0) {print $0}' |  sort -t ":" -k 2nr

方法二中使用到的是awk数组

awk具体使用方法请查看https://blog.csdn.net/u011517841/article/details/53390810

可以理解为awk数组就是按照某个key来分类

方法二详解:

$ find . -name "*.java"  |  xargs grep  "Auto"
PictController.java:import org.springframework.beans.factory.annotation.Autowired;
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/PictController.java:    @Autowired
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/PictController.java:    @Autowired
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/PictController.java:    @Autowired
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/PictController.java:    @Autowired
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/PictController.java:    @Autowired
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/PictController.java:    @Autowired
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/PictController.java:    @Autowired
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/UploadFileController.java:import org.springframework.beans.factory.annotation.Autowired;
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/UploadFileController.java:	@Autowired
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/UnitTestController.java:import org.springframework.beans.factory.annotation.Autowired;
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/UnitTestController.java:    @Autowired
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/UnitTestController.java:    @Autowired
./atfcapi-tools-service/src/main/java/atfcapi/tools/util/CollectLogInfoUtil.java:import org.springframework.beans.factory.annotation.Autowired;
./atfcapi-tools-service/src/main/java/atfcapi/tools/util/CollectLogInfoUtil.java:    @Autowired
./atfcapi-tools-service/src/main/java/atfcapi/tools/service/impl/UnitTestServiceImpl.java:import org.springframework.beans.factory.annotation.Autowired;
./atfcapi-tools-service/src/main/java/atfcapi/tools/service/impl/UnitTestServiceImpl.java:    @Autowired
./atfcapi-tools-service/src/main/java/atfcapi/tools/service/impl/UnitTestServiceImpl.java:    @Autowired
./atfcapi-tools-service/src/main/java/atfcapi/tools/service/impl/UnitTestServiceImpl.java:    @Autowired
./atfcapi-tools-service/src/main/java/atfcapi/tools/service/impl/UnitTestServiceImpl.java:    @Autowired
$     find . -name "*.java"  |  xargs grep  "Auto" | awk -F ":" '{a[$1]++}END{for(i in a) {print i,a[i]}}'
./atfcapi-tools-service/src/main/java/atfcapi/tools/service/impl/SoaCaseSchemaImpl.java 2
./atfcapi-tools-app/src/main/java/atfcapi/tools/configure/DatabaseConfiguration.java 4
./atfcapi-tools-service/src/main/java/atfcapi/tools/service/impl/ApiOperateService.java 10
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/ProjectController.java 7
./atfcapi-tools-service/src/main/java/atfcapi/tools/service/impl/ElecocoServiceImpl.java 2
./atfcapi-tools-data/src/main/java/atfcapi/tools/db/tables/interfaces/IPressureConfig.java 2
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/SendRequestController.java 4
./atfcapi-tools-service/src/main/java/atfcapi/tools/service/impl/ParametersListServiceImpl.java 2
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/ApiOperateController.java 2
./atfcapi-tools-service/src/main/java/atfcapi/tools/service/impl/ApplyReporterServiceImpl.java 2
./atfcapi-tools-app/src/main/java/atfcapi/tools/controller/PressureConfigController.java 2
./atfcapi-tools-data/src/main/java/atfcapi/tools/db/tables/daos/SoaAutoscanConfDao.java 34

 

awk 按照某个key分类的方法见https://blog.csdn.net/u011517841/article/details/53390810

awk -F ":" '{a[$1]++}END{for(i in a) {print i,a[i]}}' 这里就是按照JAVA类分类

 

 

 

这篇关于列出某目录下包含某字符串的文件以及个数(不包含的除外)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1048870

相关文章

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho