Linux 的 grep 命令使用大全

news/2024/4/24 23:12:26/

当你需要在Linux或Unix系统中快速搜索文件中的特定字符串时,grep命令是非常有用的工具。Grep是Global Regular Expression Print的缩写,它是一个文本搜索工具,可以用来在一个或多个文件中查找文本模式。在这篇博客中,我将会讲解grep指令的一些基本用法。

基本语法

Grep命令的基本语法如下所示:

grep "word" filename

其中`[options]`表示选项参数,`pattern`表示要搜索的文本模式,`[file ...]`表示要搜索的文件列表。

下面是一些常用的选项参数:

  • " -i ":忽略大小写;
  • " -v ":输出不匹配的行;
  • " -r ":递归搜索子目录下的所有文件;
  • " -n ":输出匹配行的行号。

实际应用

1. 查找一个单词

下面是在文件中查找一个单词的基本语法:

grep "word" filename

其中`"word"`是要查找的单词,`filename`是要查找的文件名。如果匹配成功,会输出包含该单词的行。

2. 查找多个文件

可以在多个文件中查找一个单词,只需在文件名之间添加空格即可。例如:

grep "word" file1 file2 file3

这将在`file1`、`file2`和`file3`文件中查找单词“word”。

3. 查找包含某个字符串的文件

可以使用`-l`选项查找包含某个字符串的文件名。例如:

grep -l "word" *

这将在当前目录中的所有文件中查找包含单词“word”的文件名。

4. 递归查找一个单词

使用`-r`选项可以在目录及其子目录下递归查找一个单词。例如:

grep -r "word" /path/to/directory

这将在`/path/to/directory`目录及其子目录中查找单词“word”。

5. 忽略大小写

使用`-i`选项可以忽略大小写进行搜索。例如:

grep -i "word" filename

这将在`filename`文件中查找单词“word”,无论它是大写还是小写。

6. 输出匹配行的行号

使用`-n`选项可以输出匹配行的行号。例如:

grep -n "word" filename

这将在`filename`文件中查找单词“word”,并输出包含该单词的行号。

总结

grep是一个强大的文本搜索工具,在Linux和Unix系统中非常常用。本文介绍了一些grep命令的基本用法,包括查找单词、查找多个文件、递归搜索、


http://www.ppmy.cn/news/47023.html

相关文章

FPGA基于SFP光口实现1G千兆网UDP通信 1G/2.5G Ethernet PCS/PMA or SGMII替代网络PHY芯片 提供工程源码和技术支持

目录 1、前言2、我这里已有的UDP方案3、详细设计方案4、vivado工程详解5、上板调试验证并演示6、福利:工程代码的获取 1、前言 目前网上的fpga实现udp基本生态如下: 1:verilog编写的udp收发器,但不带ping功能,这样的代…

Spark 实现重新分区 partitionBy、coalesce、repartition(附代码演示)

文章目录 1、partitionBy 源码中的定义(部分) 调用方式 2、coalesce 源码中的定义 调用方式 3、repartition 源码中的定义 调用方式 repartition和coalesce的区别 代码演示 (跳转代码) 实现重新分区,本质上…

C++ [图论算法详解] 欧拉路欧拉回路

蒟蒻还在上课,所以文章更新的实在慢了点 那今天就来写一篇这周刚学的欧拉路和欧拉回路吧 讲故事环节: 在 一个风雪交加的夜晚 18世纪初普鲁士的哥尼斯堡,有一条河穿过,河上有两个小岛,有七座桥把两个岛与河岸联系…

linux知识

1.vi 删除-dd i-insert 最后一行-G 第一行-g 查找-/ 替换-:s/old/new/g 2.wc -》 行数 字符数 字节数 -w 统计字数 3. sort -k 按某一列排序 -r reverse -n 按字符排 4.uniq -c 统计重复数量 5.head -4 取文件前4行 6.date --date"1 days ago" date "%Y%m%D %H…

Python 单样本学习实用指南:1~6 全

原文:Hands-On One-shot Learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如…

C learning_6

目录 语句的种类 C语言&#xff1a;结构化是程序设计语言 顺序结构&#xff1a; 选择结构(分支结构): 循环结构&#xff1a; while语句中的break和continue 语句的种类 1.表达式语句&#xff1a;表达式语句是指一个表达式后面跟随一个分号的语句。 #include<stdio.h&g…

2021地理设计组二等奖:基于GIS的东江源区土壤侵蚀及其影响因素空间分析

一、作品背景 水土保持情况普查对我国具有重要意义。我国目前是世界上水土流失最严重的国家之一&#xff0c;水土流失面积极其广且量大&#xff1b;严重的水土流失问题是我国生态环境问题的重要板块&#xff0c;若是持续恶化&#xff0c;将会严重影响我国的生态安全、饮水安全…

4.17日报

get()和 load()的区别&#xff1f; 数据查询时&#xff0c;没有 OID 指定的对象&#xff0c;get() 返回 null&#xff1b;load() 返回一个代理对象。 load()支持延迟加载&#xff1b;get() 不支持延迟加载。 121. 说一下 hibernate 的缓存机制&#xff1f; hibernate 常用的缓存…

MIT6.824 Lecture18 Fork Consistency

Background 拜占庭问题&#xff08;Byzantine Generals Problem&#xff09;得名于一个古老的传说&#xff0c;讲述了拜占庭帝国在战争中的一个失败策略。在这个故事中&#xff0c;多名拜占庭将军要协调进攻或撤退的行动&#xff0c;但是其中一些将军可能会向其他帝国泄露假消…

【MySQL | 进阶篇】09、MySQL 管理及常用工具(mysqladmin、mysqlbinlog、mysqldump 等)的使用

目录 一、系统数据库 二、常用工具 2.1 mysql 示例 2.2 mysqladmin 示例 2.3 mysqlbinlog 示例 2.4 mysqlshow 示例 2.5 mysqldump&#xff08;数据备份&#xff09; 示例 2.6 mysqlimport/source&#xff08;数据恢复&#xff09; 2.6.1 mysqlimport 2.6.2 …

企业绩效管理怎么做?

阅读本文您将了解&#xff1a;1.企业绩效管理是什么&#xff1b;2.企业绩效管理怎么做&#xff1b;3.绩效管理系统的优势所在。 一、绩效管理是什么 绩效考核和绩效管理是企业管理中必须了解和掌握的概念。绩效考核是企业对主要经济和技术指标完成情况按照既定方案进行的考核…

浅谈日出日落的计算方法以及替代工具 - 日出日落 API

引言 如果你想知道精确的日落日出时间&#xff0c;又或者你想设计一个日出日落时间查询的应用&#xff0c;又或者你只是好奇点进来了&#xff0c;还是可以过来围观一下涨涨知识&#xff0c;今天想跟大家聊一聊的是日出日落的计算方法以及替代工具 - 日出日落 API 。 日出日落…

产品说明书应该如何制作?

在当今互联网时代&#xff0c;产品说明书无疑是一种展示产品特性、引导用户使用和解决用户问题的重要方式。一份精心制作的产品说明书&#xff0c;能够让用户更快地了解和掌握产品的使用方法&#xff0c;让用户充分享受产品带来的便利。不过要做出一份高质量的产品说明书&#…

[java基础]面向对象(四)

多态&#xff1a;多种形态 向上造型/自动类型转换&#xff1a; 超类型的引用指向派生类的对象 能点出来什么&#xff0c;看引用的类型--------------这是规定&#xff0c;记住它 向下转型/强制类型转换&#xff0c;成功的条件只有如下两种&#xff1a; 引用所指向的对象&am…

【FTP服务】

目录 一、FTP服务二、FTP服务器安装配置FTP服务的安装匿名访问开启防火墙设置本地用户修改配置文件 以图形化的格式来写入文件 三、设置白名单&#xff0c;黑名单用户 一、FTP服务 作用: 是用来传输文件的协议 端口: FTP服务器默认使用TCP协议的20、21端口与客户端进行通信 2…

从零学习SDK(7)如何打包SDK

打包SDK的目的是为了方便将SDK提供给其他开发者或用户使用&#xff0c;以及保证SDK的兼容性和安全性。打包SDK可以有以下几个好处&#xff1a; 减少依赖&#xff1a;打包SDK可以将SDK所需的库、资源、文档等打包成一个文件或者一个目录&#xff0c;这样就不需要用户再去安装或…

JavaScript每日五题面试题(第一天)

1、什么是深拷贝和浅拷贝? 如何实现深浅拷贝&#xff1f; 首先我们先来理解一下什么是浅拷贝和深拷贝 什么是深拷贝和浅拷贝? 深拷贝 创建一个 新对象, 拷贝对象的所有属性, 如果属性是 基本数据, 拷贝的就是 基本数据 的值; 如果是 引用数据, 则需要重新分配一块内存, 拷…

select、poll、epoll(IO多路复用)

功能 三个模型都是用来判断是否有被监听的socket状态发生改变&#xff08;读写和异常&#xff09; select 首先介绍一下fd_set这个数组&#xff0c;这其实是一个类图&#xff0c;其中每一位表示一个socketfd&#xff0c;哪一位是1表示这一位对应的socket就是被监听的&#x…

Spark on Yarn(client和cluster模式,spark-shell 和 spark-submit 的区别,WorldCount实现与理解)

文章目录 Spark on Yarn两种模式clientcluster spark-shell 和 spark-submit 的区别的理解spark-shellspark-submit WorldCount实现IDEA本地实现On Yarn 实现WorldCount图解 Spark on Yarn spark on yarn 的两种模式是指 spark 应用程序的 driver 进程&#xff08;负责控制和协…

java线程小结

线程 1.概念与原理 1.1线程和进程的概念 现在的操作系统是多任务操作系统&#xff0c;而多线程是实现多任务的一种方式 进程&#xff1a;是指内存中运行的应用程序&#xff0c;有自己独立的内存空间&#xff0c;可以独立的运行&#xff0c;进程彼此之间互不干扰&#xff0c;一…