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

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

相关文章

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

Java 字符串操作之contains 和 substring 方法最佳实践与常见问题

《Java字符串操作之contains和substring方法最佳实践与常见问题》本文给大家详细介绍Java字符串操作之contains和substring方法最佳实践与常见问题,本文结合实例... 目录一、contains 方法详解1. 方法定义与语法2. 底层实现原理3. 使用示例4. 注意事项二、su

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报

Python 字符串裁切与提取全面且实用的解决方案

《Python字符串裁切与提取全面且实用的解决方案》本文梳理了Python字符串处理方法,涵盖基础切片、split/partition分割、正则匹配及结构化数据解析(如BeautifulSoup、j... 目录python 字符串裁切与提取的完整指南 基础切片方法1. 使用切片操作符[start:end]2