grep命令教程

grep 是 Linux 和 Unix 系统中用于搜索文本的强大命令行工具。它可以根据给定的模式在文件中查找匹配的行,并输出这些行。以下是 grep 命令的基本用法和一些常见选项的详细教程。

基本语法

grep [选项] PATTERN [FILE...]
  • PATTERN: 要搜索的模式,可以是字符串、正则表达式等。
  • FILE: 要搜索的文件,可以是一个或多个文件。如果不指定文件,grep 会从标准输入读取数据。

常见选项

  • -i: 忽略大小写。
  • -v: 反转匹配,显示不匹配的行。
  • -r-R: 递归搜索子目录。
  • -l: 仅显示匹配的文件名。
  • -n: 显示匹配行的行号。
  • -c: 统计匹配的行数,而不是显示行内容。
  • -o: 只输出匹配的部分。
  • -E: 使用扩展正则表达式(相当于 egrep)。
  • -w: 只匹配整个单词。
  • -A NUM: 显示匹配行及其后面的 NUM 行。
  • -B NUM: 显示匹配行及其前面的 NUM 行。
  • -C NUM: 显示匹配行及其前后各 NUM 行。

示例

  1. 基本搜索

    grep "hello" file.txt
    

    file.txt 中搜索包含 “hello” 的行。

  2. 忽略大小写

    grep -i "hello" file.txt
    

    忽略大小写,搜索 “hello” 或 “Hello”。

  3. 反向匹配

    grep -v "hello" file.txt
    

    显示不包含 “hello” 的行。

  4. 递归搜索

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

    在指定目录及其子目录中搜索 “hello”。

  5. 显示行号

    grep -n "hello" file.txt
    

    显示包含 “hello” 的行及其行号。

  6. 仅显示匹配的文件名

    grep -l "hello" *.txt
    

    显示当前目录下所有包含 “hello” 的文本文件名。

  7. 统计匹配行数

    grep -c "hello" file.txt
    

    输出 “hello” 出现的次数。

  8. 使用正则表达式

    grep -E "he[[:alpha:]]+" file.txt
    

    搜索以 “he” 开头后跟一个或多个字母的单词。

  9. 显示上下文

    grep -C 2 "hello" file.txt
    

    显示匹配行及其前后各 2 行。

结合其他命令使用

grep 可以与其他命令结合使用,例如与 pipe(管道)结合:

cat file.txt | grep "hello"

或与其他命令结合:

dmesg | grep "error"

总结

grep 是一个非常灵活和强大的工具,通过掌握其基本用法和选项,可以在处理文本和日志文件时大大提高效率。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Moshi: a speech-text foundation model for real time dialogue

视频号 挺神奇的东西 整下来 kyutai-labs/moshi (github.com) git clone https://github.com/kyutai-labs/moshi.git 在线体验 moshi.chat 结束后 点击Download audio Download video 可以下载音频与视频 (不过是webm格式) 发行版 已上传至资源 小…

【C++篇】C++类与对象深度解析(四):初始化列表、类型转换与static成员详解

文章目录 C类与对象超详细入门指南前言1. 初始化列表——再谈构造函数1.1 初始化成员变量的方式1.1.1 构造函数内部赋值 vs 初始化列表1.1.2 两者的区别1.1.3 为什么要使用初始化列表1.1.4 示例 1.2 初始化列表的语法1.2.1 示例: 1.3 引用成员变量、const成员变量的…

【图灵完备 Turing Complete】游戏经验攻略分享 Part.4 处理器架构

比较有难度的一个部分。 运算单元ALU,其实就是通过OP选择计算方式,然后选通某个计算,之后输出。每个计算逐个实现就行了。 下面是一个优化占地面积的ALU,变得紧凑了一点。 下面是一个简单的OP选通原理线路。判断是立即数寻址&…

【C++】关键字auto详解

🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:C_小米里的大麦的博客-CSDN博客 🎁代码托管:C: 探索C编程精髓,打造高效代码仓库 (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、前言 二、类型别名思考 三、auto简介 四…

学习笔记——RegNet:Designing Network Design Spaces

RegNet:Designing Network Design Spaces RegNet:设计一个网络设计空间 论文地址: https://arxiv.org/pdf/2003.13678 1、前言 在这项工作中,作者提出了一种新的网络设计范例。 作者的目标是帮助增进对网络设计的理解并发现跨设置…

2024年华为杯数学建模研赛(C题) 建模解析| 磁芯损耗建模 | 小鹿学长带队指引全代码文章与思路

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮2000人完成了建模与思路的构建的处理了~ 本篇文章是鹿鹿学长经过深度思考,独辟蹊径,实现综合建模。独创复杂系统视角,帮助你解决研赛的难关呀。 完整内容可…

C语言中易混淆概念的关键字

最快的关键字---- register register: 这个关键字请求编译器尽可能的将变量存在 CPU 内部寄存器中而不是通过内 存寻址访问以提高效率。注意是尽可能,不是绝对。你想想,一个 CPU 的寄存器也就那么 几个或几十个,你要是定义了很多很…

Kyutai开源实时语音对话模型Moshi

新闻 法国人工智能实验室Kyutai在巴黎举行的一次活动上推出了能够进行自然交互的对话式人工智能助手Moshi,并计划将其作为开源技术发布。Kyutai表示,Moshi是首款可公开访问的人工智能助手,可实现实时对话,有别于OpenAI的GPT-4o&a…

互联网广告产品基础知识

一 计价与效果 广告产品如何估算收入? 一种是从需求侧计算:按照广告主数量进行拟合;一种是从供给侧计算:按照曝光量和千次曝光单价进行拟合。 需求侧 从需求侧,也就是广告主侧,来计算广告产品的总收入&…

构建高可用和高防御力的云服务架构:从DDoS高防到PolarDB

引言 随着互联网技术的飞速发展,网络环境已经成为我们日常生活和商业活动中不可或缺的一部分。然而,这种依赖也带来了新的挑战,尤其是在网络安全领域。其中,分布式拒绝服务(DDoS)攻击因其破坏性强、难以防…

vite 使用飞行器仪表示例

这里写自定义目录标题 环境vue代码效果图 环境 jquery npm install -S jqueryjQuery-Flight-Indicators 将img、css、js拷贝到vite工程目录中 打开 jquery.flightindicators.js&#xff0c;在文件开头加上import jQuery from "jquery"; vue代码 <template>&…

深度学习经典模型之BERT(上)

BERT(Bidirectional Encoder Representations from Transformers)是一个双向transformer编码器的言表示模型。来自论文&#xff1a;BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 。由Google公司的研发&#xff0c;BERT的出现使得我们能够…

MySQL篇(SQL优化)(持续更新迭代)

目录 一、插入数据&#xff1a;Insert 1. 优化方案一&#xff1a;批量插入数据 2. 优化方案二&#xff1a;手动控制事务 3. 优化方案三&#xff1a;主键顺序插入&#xff0c;性能要高于乱序插入 4. 大批量插入数据 5. 案例 5.1. 创建表结构 5.2. 设置参数 5.3. load加载…

IDAE中Quarkus框架(3.13版本)开发、调试、部署、打包等

code-with-quarkus code-with-quarkus 是使用官网生成的demo项目 这个项目使用Quarkus&#xff08;使用3.13.0版本&#xff0c;该版本支持JDK21&#xff09;&#xff0c;超音速亚原子Java框架。官网地址: https://quarkus.io/. 环境要求 OS: Windows 10.0 jdk 11 maven 3.9…

单元测试、集成测试、系统测试有什么不同?

单元测试、集成测试和系统测试是软件测试开发中不可或缺的部分。 单元测试&#xff1a; 范围&#xff1a;单元测试是对软件中最小的可测试单元的测试&#xff0c;通常是函数、方法或类。 目的&#xff1a;它的目标是验证每个单独的单元是否按照预期工作&#xff0c;以增加代码…

数据转换器——佛朗哥Chater 1

【注:本文基于《数据转换器》一书进行学习、总结编撰,适合新手小白进行学习】 目录 1.1 理想的数据转换器 1.2 采样 1.2.1 欠采样 1.2.2 采样时间的抖动(A/D转换的第一个精度限制) 1.3 幅度的量化 1.3.1 量化噪声(基本限制) 1.3.2 量化噪声的性质 1.4 KT/C噪声(…

Qt (19)【Qt 线程安全 | 互斥锁QMutex QMutexLocker | 条件变量 | 信号量】

阅读导航 引言一、互斥锁1. QMutex&#xff08;1&#xff09;基本概念&#xff08;2&#xff09;使用示例基本需求⭕thread.h⭕thread.cpp⭕widget.h⭕widget.cpp 2. QMutexLocker&#xff08;1&#xff09;基本概念&#xff08;2&#xff09;使用示例 3. QReadWriteLocker、QR…

【Linux】简易日志系统

目录 一、概念 二、可变参数 三、日志系统 一、概念 一个正在运行的程序或系统就像一个哑巴&#xff0c;一旦开始运行我们很难知晓其内部的运行状态。 但有时在程序运行过程中&#xff0c;我们想知道其内部不同时刻的运行结果如何&#xff0c;这时一个日志系统可以有效的帮…

软考无损连接判断

如何判断是否为无损连接&#xff0c;要看能否还原回最开始的关系模式 最开始的关系模式 U{A&#xff0c;B&#xff0c;C} 函数连接 F{A -> B}&#xff0c;这个函数连接的意思就是A可以推导出B 首先从P1开始判断&#xff0c;{ AB&#xff0c;BC } C不能通过函数依赖推导出来…

数据结构之线性表——LeetCode:328. 奇偶链表,86. 分隔链表,24. 两两交换链表中的节点

328. 奇偶链表 题目描述 328. 奇偶链表 给定单链表的头节点 head &#xff0c;将所有索引为奇数的节点和索引为偶数的节点分别组合在一起&#xff0c;然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 &#xff0c; 第二个节点的索引为 偶数 &#xff0c;以此类推。…