find 查找文件grep匹配数据

一、find介绍

  1. find . -iname "*.txt"查找当前目录下各个文件夹下的txt属性的文件(i忽略大小写)。

2.find . -type f 查找当前目录下各个文件夹下的文件

3.find . -type d 查找当前目录下各个文件夹下的目录

4.find . -type f | xargs grep -ain -E "匹配字段" --colo=auto

grep参数介绍-a 选项 :以文本文件的形式处理二进制文件,-i 选项 :让搜索忽略大小写,-n 选项:在输出结果时,显示匹配行的行号,-E正则匹配,--colo=auto匹配结果自带颜色。

5.find -L ./ -path ./qt-creator-opensource-src-12.0.0/bin -prune -o -path ./qt-creator-opensource-src-12.0.0/coin -prune -o -type f| xargs grep -ain -E "chen3feng" --color=auto

执行命令所在目录有目录qt-creator-opensource-src-12.0.0。

-path ./qt-creator-opensource-src-12.0.0/bin -prune

  • path 选项用于匹配文件路径,./qt-creator-opensource-src-12.0.0/bin -prune 就是要匹配的路径模式。这意味着只要遇到路径是 ./qt-creator-opensource-src-12.0.0/bin -prune 的目录,find 就会停止对它及其子目录的搜索。
  • -prune 选项是告诉 find 命令,对匹配 -path 条件的目录不要进行遍历,也就是 "修剪" 掉这部分目录树,避免在指定目录及其子目录中继续查找,以此提高查找效率。在这个例子里,./qt-creator-opensource-src-12.0.0/bin -prune 目录及其内部的所有文件和子目录都会被跳过

-o:这是一个逻辑运算符,代表 "或(or)" 的关系,连接前后两个查找条件

-path ./qt-creator-opensource-src-12.0.0/coin -prune

同之前的命令一样含义。

-type f-type 用于指定查找文件的类型,f 表示普通文件(file),也就是查找除了被 -prune 修剪掉的./qt-creator-opensource-src-12.0.0/bin 和 ./qt-creator-opensource-src-12.0.0/coin目录及其子目录之外的所有普通文件。

整体目录结构如下图:

6.find . -type f \( -name "*json" -o -iname "*lists.txt" \) | xargs grep -ain "匹配项"

find 命令用于在当前目录(.)及其子目录下查找特定类型的文件并进行grep匹配。

  • 括号 :括号\(`和`\)用于将多个条件组合在一起,让它们作为一个整体来处理,形成更复杂的逻辑判断。因为括号在 shell 中有特殊意义,所以需要用反斜杠\转义,使其被当作普通字符传递给 find 命令。
  • -name "*json"-name 选项用于按文件名精确匹配,* 是通配符,代表任意字符序列,所以*json会匹配所有以.json为后缀的文件名。
  • -o:这是逻辑运算符 "或(or)",连接前后两个文件名匹配条件。
  • -iname "*lists.txt"-iname 选项与 -name 类似,也是匹配文件名,但 -iname 是忽略大小写的,所以它会匹配所有名字是*lists.txt的文件,无论大小写如何
相关推荐
AlfredZhao9 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户97183563346615 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪16 小时前
linux 拷贝文件或目录到指定的位置
linux
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
小宇宙Zz1 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信