Linux命令200例:grep强大的文本搜索工具使用及15个精选示例(常用)

在这里插入图片描述

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,阿里云社区专家博主,2023年6月csdn上海赛道top4。
🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。
🏆本文已收录于专栏:Linux命令大全。
🏆本专栏我们会通过具体的系统的命令讲解加上鲜活的实操案例对各个命令进行深入讲解。欢迎提前锁定关注。
🎉欢迎 👍点赞✍评论⭐收藏

文章目录

  • 🚀一、什么是 Linux grep 命令?
  • 🚀二、如何使用 Linux grep 命令?
  • 🚀三、Linux grep 命令的应用场景
    • 🔎3.1 查找文件中的特定字符串
    • 🔎3.2 忽略大小写进行搜索
    • 🔎3.3 递归搜索目录
    • 🔎3.4 显示匹配到的文件名
    • 🔎3.5 反转搜索结果
    • 🔎3.6 统计匹配到的行数
    • 🔎3.7 显示匹配到的行及其行号
    • 🔎3.8 使用正则表达式进行搜索
    • 🔎3.9 使用多个字符串进行搜索
    • 🔎3.10 查找文件中不存在的字符串
    • 🔎3.11 从标准输入读取数据
    • 🔎3.12 结合管道使用
    • 🔎3.13 使用文件列表进行搜索
    • 🔎3.14 根据文件类型进行搜索
    • 🔎3.15 组合多个选项
  • 🚀四、总结


🚀一、什么是 Linux grep 命令?

Linux grep 命令是一种强大的文本搜索工具,用于在文件或者标准输入中查找指定的字符串模式,并将匹配的行打印出来。grep 是Global Regular Expression Print(全局正则表达式打印)的缩写。

🚀二、如何使用 Linux grep 命令?

grep 命令的基本语法如下:

grep [options] PATTERN [FILE...]
  • options: 可选参数,用于指定 grep 命令的不同选项。
  • PATTERN: 要搜索的字符串模式,可以是普通字符串、正则表达式等。
  • FILE: 可选参数,要搜索的文件名列表。如果不指定文件名,则默认搜索标准输入。

下面是一些常用的 grep 选项:

  • -i: 忽略大小写。
  • -r: 递归搜索子目录。
  • -l: 只显示匹配到的文件名,而不显示具体匹配内容。
  • -v: 反转搜索结果,只显示不匹配的行。
  • -c: 只显示匹配到的行数。
  • -n: 显示匹配到的行数及其行号。

🚀三、Linux grep 命令的应用场景

grep 命令在日常的 Linux 系统管理和开发工作中非常常用,以下是一些常见的应用场景:

🔎3.1 查找文件中的特定字符串

grep 命令可以帮助我们快速查找文件中的特定字符串。例如,在一个文本文件中查找单词 “hello”,并显示匹配到的行:

grep "hello" file.txt

🔎3.2 忽略大小写进行搜索

通过 -i 选项,grep 命令可以忽略大小写进行搜索。例如,查找包含 “hello” 或者 “Hello” 的行:

grep -i "hello" file.txt

🔎3.3 递归搜索目录

通过 -r 选项,grep 命令可以递归搜索指定目录下的所有子目录和文件。例如,在当前目录及其子目录下查找包含 “hello” 的文件:

grep -r "hello" .

🔎3.4 显示匹配到的文件名

通过 -l 选项,grep 命令只显示匹配到的文件名,而不显示具体匹配内容。例如,查找包含 “hello” 的文件,并显示文件名:

grep -l "hello" file*.txt

🔎3.5 反转搜索结果

通过 -v 选项,grep 命令可以反转搜索结果,只显示不匹配的行。例如,查找不包含 “hello” 的行:

grep -v "hello" file.txt

🔎3.6 统计匹配到的行数

通过 -c 选项,grep 命令可以统计匹配到的行数。例如,统计包含 “hello” 的行数:

grep -c "hello" file.txt

🔎3.7 显示匹配到的行及其行号

通过 -n 选项,grep 命令可以显示匹配到的行及其行号。例如,显示包含 “hello” 的行及其行号:

grep -n "hello" file.txt

🔎3.8 使用正则表达式进行搜索

grep 命令支持使用正则表达式进行搜索,可以更加灵活地匹配字符串模式。例如,查找以 “hello” 开头的行:

grep "^hello" file.txt

🔎3.9 使用多个字符串进行搜索

grep 命令可以同时搜索多个字符串模式。例如,查找包含 “hello” 或者 “world” 的行:

grep -e "hello" -e "world" file.txt

🔎3.10 查找文件中不存在的字符串

通过 -L 选项,grep 命令可以查找文件中不存在指定字符串的行。例如,查找文件中不包含 “hello” 的行:

grep -L "hello" file*.txt

🔎3.11 从标准输入读取数据

如果不指定文件名,则 grep 命令会从标准输入中读取数据进行搜索。例如,从标准输入读取数据并查找包含 “hello” 的行:

echo "hello world" | grep "hello"

🔎3.12 结合管道使用

grep 命令常常与其他命令结合使用,通过管道传递数据。例如,查找包含 “error” 的日志行,并进行统计:

cat error.log | grep "error" | wc -l

🔎3.13 使用文件列表进行搜索

通过 -f 选项,grep 命令可以从指定的文件中读取搜索模式。例如,从文件 patterns.txt 中读取搜索模式进行匹配:

grep -f patterns.txt file.txt

🔎3.14 根据文件类型进行搜索

通过 --include 或者 --exclude 选项,grep 命令可以根据文件类型进行搜索。例如,只在文本文件中搜索包含 “hello” 的行:

grep "hello" --include=*.txt

🔎3.15 组合多个选项

grep 命令可以组合多个选项使用,以实现更复杂的搜索需求。例如,递归搜索目录下的所有 JavaScript 文件,并查找包含 “console.log” 的行:

grep -r --include=*.js "console.log" .

🚀四、总结

Linux grep 命令是一种非常强大的文本搜索工具,可以帮助我们在文件和标准输入中快速查找指定的字符串模式。通过灵活运用 grep 命令的各种选项,我们可以实现各种不同的搜索需求,提高工作效率。希望本文对理解和使用 Linux grep 命令有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/61422.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[C++] 类与对象(中)完整讲述运算符重载示例 -- 日期类(Date) -- const成员

目录 1、前言 2、全缺省的构造函数 3、打印接口 4、拷贝构造 5、赋值运算符重载(operator) 5.1赋值重载是默认成员函数,重载格式: 5.2 赋值重载不能为全局函数 5.3 编译器默认生成 6、析构函数 7、operator> 8、ope…

国内GitHub加速访问工具-Fetch GitHub Hosts

一、工具介绍 Fetch GitHub Hosts是一款开源跨平台的国内GitHub加速访问工具,主要为解决研究及学习人员访问 Github 过慢或其他问题而提供的 Github Hosts 同步工具。 项目原理:是通过部署此项目本身的服务器来获取 github.com 的 hosts,而…

MySql之索引下推

什么是索引下推 索引下推(Index Condition Pushdown,简称ICP),是MySQL5.6版本的新特性,它能减少回表查询次数,提高查询效率。 索引下推优化的原理 我们先简单了解一下MySQL大概的架构: MySQL服务层负责SQL语法解析、…

图解java.util.concurrent并发包源码系列——深入理解AQS,看完可以吊打面试官

图解java.util.concurrent并发包源码系列——深入理解AQS,看完可以吊打面试官 AQS是什么?有什么作用?AQS的原理自定义资源资源的获取与释放线程阻塞等待唤醒 AQS源码核心成员变量Node 的内部结构waitStatusprev、next、threadnextWaiterprede…

网络安全公司校招面试会面试那些问题?

面试官会从那些方面去考察面试者? 以某安全公司的技术支持工程师岗位为例 面试官可能会从网络技术、操作系统、数据库、项目经验、语言表达以及个人擅长技能方面展开 面试官会提出那些问题来考查面试者呢? 网络基础方面的问题:请介绍一下…

运输层---概述

目录 运输层主要内容一.概述和传输层服务1.1 概述1.2 传输服务和协议1.3 传输层 vs. 网络层1.4 Internet传输层协议 二. 多路复用与多路分解(解复用)2.1 概述2.2 无连接与面向连接的多路分解(解复用)2.3面向连接的多路复用*2.4 We…

《Python入门到精通》函数详解

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 函数 1、函数的调用2、函数的参数2.1、变量的就近原则2.2、传递参数2.3、形参和实…

wonderful-sql 作业

Sql 作业 作业1: 答: create table Employee (Id integer not null, Name varchar(32) , Salary integer, departmentId integer, primary key (Id) );create table Department( Id integer primary key, Name varchar(30) not null );insert into emp…

Python学习笔记:List、Tuple、for循环

1.list list_demo [7, 7, 8, 9, 9, 9] print(list_demo.index(7)) # index 方法返回第一个index list_demo.sort() # 排序list list_demo.reverse() # 倒序list list_demo1 list_demo.copy() # 复制list 2.matrix 其实就是list嵌套&…

网络开发-IO模型

基本概念 I/O即数据的读取&#xff08;接收&#xff09;或写入&#xff08;发送&#xff09;操作 通常用户进程中的一个完整I/O分为两个阶段 用户进程空间<-->内核空间内核空间<-->设备空间&#xff08;磁盘、网卡等&#xff09; I/O分为内存I/O、网络I/O和磁盘…

宝塔Linux面板升级“获取更新包失败”怎么解决?

宝塔Linux面板执行升级命令后失败&#xff0c;提示“获取更新包失败&#xff0c;请稍后更新或联系宝塔运维”如何解决&#xff1f;新手站长分享宝塔面板升级失败的解决方法&#xff1a; 宝塔面板升级失败解决方法 1、使用root账户登录到你的云服务器上&#xff0c;宝塔Linux面…

【云原生】k8s组件架构介绍与K8s最新版部署

个人主页&#xff1a;征服bug-CSDN博客 kubernetes专栏&#xff1a;kubernetes_征服bug的博客-CSDN博客 目录 1 集群组件 1.1 控制平面组件&#xff08;Control Plane Components&#xff09; 1.2 Node 组件 1.3 插件 (Addons) 2 集群架构详细 3 集群搭建[重点] 3.1 mi…

K8S系列文章之 Traefik快速入门

traefik 与 nginx 一样&#xff0c;是一款优秀的反向代理工具&#xff0c;或者叫 Edge Router。至于使用它的原因则基于以下几点 无须重启即可更新配置自动的服务发现与负载均衡与 docker 的完美集成&#xff0c;基于 container label 的配置漂亮的 dashboard 界面metrics 的支…

数据治理-数据管理总论-1

数字化转型的大背景 1.降本增效&#xff1b;2.提高资源利用效率&#xff1b;3.提升用户满意度&#xff1b; 数字化转型的难点和痛点 首先需要了解下数字化和信息化的区别&#xff1b; 从应用范围来看&#xff1a;信息化是单个系统或业务&#xff0c;是局部的&#xff1b;而数字…

突破传统监测模式:业务状态监控HM的新思路 | 京东云技术团队

一、传统监控系统的盲区&#xff0c;如何打造业务状态监控。 在系统架构设计中非常重要的一环是要做数据监控和数据最终一致性&#xff0c;关于一致性的补偿&#xff0c;已经由算法部的大佬总结过就不再赘述。这里主要讲如何去补偿&#xff1f;补偿的方案哪些&#xff1f;这就…

2023年8月——每日一题

2023年8月——每日一题 1、8月6日 24. 两两交换链表中的节点 思路&#xff1a;直接模拟 使用虚拟头结点&#xff0c;初始时cur指向虚拟头结点&#xff0c;然后执行三步骤&#xff0c;具体见代码 C代码 /*** Definition for singly-linked list.* struct ListNode {* in…

Wordpress升级版本后插件和主题常见出错及处理方法整理【持续更新】

Wordpress报错怎么解决&#xff1f; 一般常用的排查方法&#xff1a; 暂时禁用所有插件&#xff1b;将主题更改为默认主题&#xff1b; 修改wp-config.php文件&#xff1b;更新固定链接设置&#xff0c;确保设置正确&#xff1b;检查.htaccess文件是否存在且是否可写&#xf…

无涯教程-Perl - foreach 语句函数

foreach 循环遍历列表值&#xff0c;并将控制变量(var)依次设置为列表的每个元素- foreach - 语法 Perl编程语言中的 foreach 循环的语法是- foreach var (list) { ... } foreach - 流程图 foreach - 示例 #!/usr/local/bin/perllist(2, 20, 30, 40, 50);# foreach loop ex…

caj文件怎么转换成pdf?了解一下这种方法

caj文件怎么转换成pdf&#xff1f;如果你曾经遇到过需要将CAJ文件转换成PDF格式的情况&#xff0c;那么你一定知道这是一件麻烦的事情。幸运的是&#xff0c;现在有许多软件和工具可以帮助你完成这项任务。下面就给大家介绍一款使用工具。 【迅捷PDF转换器】是一款功能强大的工…

MacOS上配置docker国内镜像仓库地址

背景 docker官方镜像仓库网速较差&#xff0c;我们需要设置国内镜像服务 我的MacOS docker版本如下 设置docker国内镜像仓库地址 点击Settings点击Docker Engine修改配置文件&#xff0c;添加registry-mirrors {"builder": {"gc": {"defaultKeepS…