每天学习一个Linux命令之grep

每天学习一个Linux命令之grep

在Linux系统中,grep是一个非常强大的命令行工具,用于在文本文件中查找指定的字符串或者匹配某种模式的行。本篇博客将详细介绍grep命令的使用方法及相关选项。

命令选项

grep命令有很多选项,以下是常用的选项列表:

  • -i:忽略大小写。
  • -v:只输出没有匹配的行。
  • -r:递归搜索目录中的文件。
  • -w:只匹配整个单词,避免部分匹配。
  • -n:显示匹配行的行号。
  • -l:仅显示包含匹配项的文件名。
  • -c:仅显示匹配项的总数。
  • -e pattern:指定匹配模式。
  • -A num:显示匹配行及其后num行。
  • -B num:显示匹配行及其前num行。
  • -C[num]:显示匹配行及其前后num行。

选项详解

接下来我们将详细介绍每个选项的用法。

-i

使用该选项后,grep在匹配时将忽略大小写。例如:

$ grep -i "hello" file.txt

上述命令将会匹配file.txt中含有"hello"、“Hello”、"HELLO"等字符串的行。

-v

使用该选项后,grep只会输出没有匹配的行。例如:

$ grep -v "hello" file.txt

上述命令将会输出file.txt中不包含"hello"字符串的所有行。

-r

使用该选项后,grep会递归搜索指定目录中的所有文件。例如:

$ grep -r "hello" /path/to/directory

上述命令将会在/path/to/directory目录中搜索包含"hello"字符串的所有文件。

-w

使用该选项后,grep只会匹配整个单词,避免部分匹配。例如:

$ grep -w "hello" file.txt

上述命令将会匹配file.txt中只包含以"hello"为整个单词的行,而不会匹配包含"helloWorld"或"sayhello"的行。

-n

使用该选项后,grep会显示匹配行的行号。例如:

$ grep -n "hello" file.txt

上述命令将会在匹配行的前面显示行号。

-l

使用该选项后,grep仅显示包含匹配项的文件名。例如:

$ grep -l "hello" file1.txt file2.txt

上述命令将会显示包含"hello"字符串的文件名。

-c

使用该选项后,grep仅显示匹配项的总数。例如:

$ grep -c "hello" file.txt

上述命令将会显示file.txt中包含"hello"字符串的行数。

-e pattern

使用该选项后,可以指定匹配模式。例如:

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

上述命令将会匹配包含"hello"或"world"的所有行。

-A num

使用该选项后,grep会显示匹配行及其后num行。例如:

$ grep -A 2 "hello" file.txt

上述命令将会显示包含"hello"字符串的行,以及其之后的两行。

-B num

使用该选项后,grep会显示匹配行及其前num行。例如:

$ grep -B 2 "hello" file.txt

上述命令将会显示包含"hello"字符串的行,以及其之前的两行。

-C[num]

使用该选项后,grep会显示匹配行及其前后num行。例如:

$ grep -C2 "hello" file.txt

上述命令将会显示包含"hello"字符串的行,以及其前后的两行。

结束语

通过本篇博客,我们详细介绍了grep命令在Linux系统中的使用方法及各种可用选项。对于需要在文本文件中查找指定字符串或匹配特定模式的行的用户来说,grep是一个非常实用的工具。希望本文对您理解grep命令的使用有所帮助。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

b树(一篇文章带你 理解 )

目录 一、引言 二、B树的基本定义 三、B树的性质与操作 1 查找操作 2 插入操作 3 删除操作 四、B树的应用场景 1 数据库索引 2 文件系统 3 网络路由表 五、哪些数据库系统不使用B树进行索引 1 列式数据库 2 图形数据库 3 内存数据库 4 NoSQL数据库 5 分布式数据…

yolov5体验

无须安装CUDA,只需要有NVIDIA图形驱动即可 1. 安装Miniconda miniconda下载地址 1.1 安装细节 一个对勾都不要选择 1.2 配置环境变量 在环境变量Path中添加如下变量 C:\Server\miniconda C:\Server\miniconda\Scripts C:\Server\miniconda\Library\bin2. …

不同路径 不同路径 II 整数拆分

62.不同路径 力扣题目链接(opens new window) 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。…

mysql题库详解

1、如何创建和删除数据库? 创建数据库 CREATE DATABASE 数据库名; 删除数据库 drop database 数据库名; 2、MyISAM与InnoDB的区别? 1)事务:MyISAM 不支持事务 InnoDB 支持 2)行锁/表锁:MyISAM 支持表级锁…

【Docker】Neo4j 容器化部署

Neo4j环境标准软件基于Bitnami neo4j 构建。当前版本为5.17.0 你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取 配置文件地址: https://gitee.com/qingplus/qingcloud-platform Qin…

冒险和预测

前言 大家好我是jiantaoyab,这是我所总结作为学习的笔记第十篇,在这里分享给大家,还有一些书籍《深入理解计算机系统》,《计算机体系结构:量化研究方法》,这篇文章讲冒险和预测 流水线设计需要解决的三大冒险,分别是结…

CodeReview 规范及实施

优质博文:IT-BLOG-CN 一、为什么需要CodeReview 随着业务压力增大,引发代码质量下降,代码质量的下降导致了开发效率的降低,维护成功高等问题,开发效率下降后又加重了业务压力,最终陷入了死亡三角的内耗之…

VScode的列选

可以用来优化代码排布,让变量整齐成为一排 一、批量复制: 在1处左键单击,然后摁住SHIFTALT键的同时,左键单击2处,即可复制一整块的内容 如果所示 就可以复制了 二、批量输入 在1处左键单击,然后摁住SHI…

基于斑翠鸟优化算法(Pied Kingfisher Optimizer ,PKO)的无人机三维路径规划(MATLAB)

一、无人机路径规划模型介绍 二、算法介绍 斑翠鸟优化算法(Pied Kingfisher Optimizer ,PKO),是由Abdelazim Hussien于2024年提出的一种基于群体的新型元启发式算法,它从自然界中观察到的斑翠鸟独特的狩猎行为和共生关系中汲取灵…

Dubbo源码解读-dubbo的SPI机制

上篇我们介绍了Dubbbo整合Spring中的DubboComponentScan注解源码分析,地址如下 Dubbo源码解读-dubbo启动与Spring整合之 DubboComponentScan-CSDN博客 本文主要针对Dubbo的SPI机制,从dubbo源码角度解析。 Dubbo SPI机制,是Dubbo中比较重要的…

Linux系统中的任务迁移技术

任务迁移技术是指将任务从一个处理器核心(CPU核心)移动到另一个核心的过程,以实现负载均衡、优化系统性能或者其他系统目标的技术。任务迁移技术在多核系统中具有重要的作用,可以通过动态调整任务位置来避免负载不均衡和性能瓶颈&…

【工具】Git的24种常用命令

相关链接 传送门&#xff1a;>>>【工具】Git的介绍与安装<< 1.Git配置邮箱和用户 第一次使用Git软件&#xff0c;需要告诉Git软件你的名称和邮箱&#xff0c;否则无法将文件纳入到版本库中进行版本管理。 原因&#xff1a;多人协作时&#xff0c;不同的用户可…

Java 基于 Cloneable 接口实现原型模式(浅拷贝与深拷贝)

前言 在业务开发中&#xff0c;有时需要对业务对象进行一次复制&#xff0c;得到一个一模一样的副本。最直观的做法就是重新 new 一个对象&#xff0c;然后将原型对象的值依次设置到克隆对象中&#xff0c;但是这样写代码过于冗余&#xff0c;也不高效。 设计模式中的原型模式…

各个类linux服务器安装docker教程

由于开始经常使用docker搭建环境了&#xff0c;但是的docker在不同的机器上安装总是会遇到许多问题&#xff0c;因此呢&#xff0c;一下决定总结一些docker环境的安装过程。 Centos7 Docker&Docker-Compose安装教程_centos7 docker-compose 安装_MrNeoJeep的博客-CSDN博客…

恒驰上云规划实施解决方案上线华为云官网

华为云与伙伴共同打造联合解决方案 已成为更多企业的数字化转型利器 1月恒驰上云规划实施解决方案 完成上市宣讲并正式上架华为云官网 恒驰上云规划实施解决方案能力全景图&#xff1a;融合厂商云服务能力&#xff0c;一站式高效云迁移 从深入了解企业的本地IT环境、业务特点…

分享一下 iOS 发布/测试证书 申请过程

1.使用 已开通iOS开发者 的账号登陆 Apple Developer Apple Developer 2.点击下图右上角的 Account&#xff08;账户&#xff09; 点击下图中的 certificates&#xff08;证书&#xff09; 然后会挑战至下图所示页面 3.然后先要注册一个 App id 点击 register 就完成了 4.…

【JAVA】CSS2:样式、选择器、伪类、颜色、字体、边框、列表、背景、盒子、布局、浮动

本文介绍了CSS样式、选择器、伪类、像素、颜色、字体、边框、列表、表格属性、背景、盒子、布局与浮动 1.样式 1.1 行内样式 <h1 style"color: aqua;font-size: large;">123</h1> 1.2 内部样式 <style>h1{color: red;font: 100;}</style>…

Oracle SQL优化(读懂执行计划 一)

目录 SQL执行计划的作用示例演示执行计划概念介绍执行计划实例DISPLAY_CURSOR 类型DISPLAY_AWR 类型 指标详解 SQL执行计划的作用 示例演示 执行计划概念介绍 执行计划实例 DISPLAY_CURSOR 类型 DISPLAY_AWR 类型 指标详解

vim基础命令

目录 前言 一.vim基础命令大全 二.vim熟练的好处 三.入门使用命令 四.使用案例 4.1 gg和G 4.2 i 和 u 和 ESC使用 4.3 y$ 和 p 和 u 使用 五.注意事项 前言 启动vim编辑器后自动进入编辑模式&#xff0c;在此模式中输入命令对应vim一个动作&#xff0c;比如&#xff1a;进入编辑…

linux 配置jdk环境变量

1.确保已上传jdk包到指定目录 2.打开终端&#xff0c;使用文本编辑器&#xff08;比如vi、nano等&#xff09;创建或修改~/.bashrc文件。命令为&#xff1a; sudo vi ~/.bashrc3.在.bashrc文件末添加以下内容&#xff1a; export JAVA_HOME/usr/local/jdk/jdk1.8.0_391 #将…