热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux中使用find与grep进行文件和文本查找

在Linux系统中,find和grep是两个常用的命令,用于文件和文本的查找。本文将详细介绍这两个命令的区别及其常见用法。

Linux中使用find与grep进行文件和文本查找

在Linux系统中,文件和文本的查找是非常常见的操作。find和grep是两个非常强大的命令,分别用于根据文件属性和文件内容进行查找。

命令区别
  1. find命令主要用于根据文件的属性进行查找,如文件名、文件大小、所有者、所属组、是否为空、访问时间、修改时间等。
  2. grep命令则主要用于根据文件的内容进行查找,它会对文件的每一行按照给定的模式(pattern)进行匹配。

grep命令详解

grep全称是Global Regular Expression Print,表示全局正则表达式打印,其使用权限为所有用户。

grep -ir test ./ # 不区分大小写地递归搜索test
grep -i pattern files # 不区分大小写地搜索,默认情况下区分大小写
grep -l pattern files # 只列出匹配的文件名
grep -L pattern files # 列出不匹配的文件名
grep -w pattern files # 只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’)
grep -C number pattern files # 匹配的上下文分别显示[number]行
grep pattern1 | pattern2 files # 显示匹配 pattern1 或 pattern2 的行
grep pattern1 files | grep pattern2 # 显示同时匹配 pattern1 和 pattern2 的行
grep -n pattern files # 显示匹配行的行号
grep -c pattern files # 统计匹配行的数量


正则表达式主要参数
符号含义
\忽略正则表达式中特殊字符的原有含义
^匹配正则表达式的开始行
$匹配正则表达式的结束行
<从匹配正则表达式的行开始
>到匹配正则表达式的行结束
[ ]单个字符,如[A]即A符合要求
[ - ]范围,如[A-Z],即A、B、C一直到Z都符合要求
.所有的单个字符
*有字符,长度可以为0

grep -irn phg ./ # 一般查询phg,忽略大小写,递归查询,显示匹配行和行号
grep -irn '^phg' ./ # 查询以phg开头的行
grep -irn 'Test$' ./ # 查询以Test结尾的行
# 不区分大小写i
# 递归查询r
# 显示匹配行及行号n


find命令详解

find path expression
find ./ -name 'test*'


按文件名查找

(1) find / -name httpd.conf  # 在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2) find /etc -name '*srm*'  # 使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
(3) find . -name 'srm*'   # 表示当前目录下查找文件名开头是字符串‘srm’的文件


按文件特征查找

(1) find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)
(2) find / -atime -2   # 查找在系统中最后48小时访问的文件
(3) find / -empty   # 查找在系统中为空的文件或者文件夹
(4) find / -group cat   # 查找在系统中属于 group为cat的文件
(5) find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
(6) find / -mtime -1   # 查找在系统中最后24小时里修改过的文件
(7) find / -user fred   # 查找在系统中属于fred这个用户的文件
(8) find / -size +10000c  # 查找出大于10000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(9) find / -size -1000k   # 查找出小于1000KB的文件


使用混合查找方式

参数有: !, -and(-a), -or(-o)。
(1) find /tmp -size +10000c -and -mtime +2   # 在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
(2) find / -user fred -or -user george   # 在/目录下查找用户是fred或者george的文件
(3) find /tmp ! -user panda  # 在/tmp目录中查找所有不属于panda用户的文件


推荐阅读
  • GCC(GNU Compiler Collection)是GNU项目下的一款功能全面且高效的多平台编译工具,广泛应用于Linux操作系统中。本文将详细介绍GCC的特点及其基本使用方法。 ... [详细]
  • 导读上一篇讲了zsh的常用字符串操作,这篇开始讲更为琐碎的转义字符和格式化输出相关内容。包括转义字符、引号、print、printf的使用等等。其中很多内容没有必要记忆,作为手册参 ... [详细]
  • 本文介绍了如何在 Linux 系统上构建网络路由器,特别关注于使用 Zebra 软件实现动态路由功能。通过具体的案例,展示了如何配置 RIP 和 OSPF 协议,以及如何利用多路由器查看工具(MRLG)监控网络状态。 ... [详细]
  • grep、sed、awk一、grep的用法1、grep简介grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep包 ... [详细]
  • Iris 开发环境配置指南 (最新 Go & IntelliJ IDEA & Iris V12)
    本指南详细介绍了如何在最新的 Go 语言环境及 IntelliJ IDEA 中配置 Iris V12 框架,适合初学者和有经验的开发者。文章提供了详细的步骤说明和示例代码,帮助读者快速搭建开发环境。 ... [详细]
  • CentOS 7.4 KVM虚拟化平台搭建指南
    本文详细介绍了如何在CentOS 7.4系统上搭建KVM虚拟化平台,包括环境准备、网络配置、KVM安装与管理等步骤,适用于希望利用KVM进行虚拟化部署的技术人员。 ... [详细]
  • 本文探讨了如何利用 Application 对象在 PHP 应用程序中共享数据,特别是在多用户环境中保持数据的一致性和安全性。文章还介绍了 Application 对象的基本结构、方法和事件,并提供了实际应用示例。 ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • 本文介绍了如何在三台CentOS 7.5虚拟机上通过Docker部署RabbitMQ集群,包括环境准备、容器创建、集群配置及故障处理等内容。 ... [详细]
  • Linux环境下Memcached安装指南
    本文详细介绍如何在Linux虚拟机上安装Memcached,包括必要的依赖库安装,以及使用Xshell进行文件传输的具体步骤。 ... [详细]
  • 解决getallheaders函数导致的500错误及8种服务器性能优化策略
    本文探讨了解决getallheaders函数引起的服务器500错误的方法,并介绍八种有效的服务器性能优化技术,包括内存数据库的应用、Spark RDD的使用、缓存策略的实施、SSD的引入、数据库优化、IO模型的选择、多核处理策略以及分布式部署方案。 ... [详细]
  • ipvsadm命令简介:ipvsadm是LVS在应用层的管理命令,我们可以通过这个命令去管理LVS的配置。在fedora14、Linux6.0之后系统中 ... [详细]
  • 探索PWA H5 Web App优化之路(Service Worker与Lighthouse的应用)
    本文探讨了如何通过Service Worker和Lighthouse工具来优化PWA H5 Web App,旨在提升用户体验,包括提高加载速度、增强离线访问能力等方面。 ... [详细]
  • 本文详细介绍了RPM包构建过程中Spec文件的结构和各部分的作用,包括包描述、准备阶段、构建过程、安装步骤、清理操作以及文件列表等关键环节。同时,提供了关于RPM宏命令、打包目录结构及常见标签的深入解析。 ... [详细]
  • Linux双网卡绑定技术详解与实践
    本文详细介绍了如何在Linux系统中实现双网卡绑定,即将两块物理网卡合并为一个逻辑网卡,以提高网络性能和可靠性。文中不仅涵盖了基本的概念,还提供了具体的配置步骤和测试方法。 ... [详细]
author-avatar
此号我已不再用
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有