linux 的grep命令

2023-11-13

一、语法

grep全称是Global Regular Expression Print,表示全局正则表达式打印。grep命令是一种强大的文本搜索工具,用于查找文件中符合条件的字符串,它能使用正则表达式搜索文本,并把匹配的行打印出来。

[root@localhost ~]# grep [选项] "搜索内容" 文件名

选项:

  • -i: 忽略大小写
  • -n: 输出行号
  • -v: 反向查找
  • --color=auto: 搜索出的关键字用颜色显示

二、实例

1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:

grep test *file 

结果如下所示:

$ grep test test* #查找前缀有“test”的文件包含“test”字符串的文件  
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行  
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行  
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行 

2、以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:

grep -r update /etc/acpi 

输出结果如下:

$ grep -r update /etc/acpi #以递归的方式查找“etc/acpi”  
#下包含“update”的文件  
/etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)  
Rather than  
/etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of  
IO.) Rather than  
/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update 

3、反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。

查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:

grep -v test *test*

结果如下所示:

$ grep-v test* #查找文件名中包含test 的文件中不包含test 的行  
testfile1:helLinux!  
testfile1:Linis a free Unix-type operating system.  
testfile1:Lin  
testfile_1:HELLO LINUX!  
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
testfile_1:THIS IS A LINUX TESTFILE!  
testfile_2:HELLO LINUX!  
testfile_2:Linux is a free unix-type opterating system.  

参考:

Linux grep 命令 | 菜鸟教程

linux grep命令 - 风生水起 - 博客园
【Linux命令参数】——grep -v 命令排除输出_清平の乐的技术专栏的博客-CSDN博客
Linux grep 命令和通配符_NGC_2070的博客-CSDN博客_grep 通配符

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux 的grep命令 的相关文章

  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • GCC C++ (ARM) 和指向结构体字段的 const 指针

    假设有一个简单的测试代码 typedef struct int first int second int third type t define ADDRESS 0x12345678 define REGISTER type t ADDRE
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • 设备树不匹配:.probe 从未被调用

    我无法理解设备树的工作原理 或者具体来说为什么该驱动程序无法初始化 这是在 android 版本 3 10 的 rockchip 供应商内核中 驱动程序 看门狗 rk29 wdt c 为了可读性而减少 static const struct
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • 如何授予 apache 使用 NTFS 分区上的目录的权限?

    我在一台带有 20GB 硬盘的旧机器上运行 Linux Lubutu 12 10 我有一个 1 TB 外部硬盘 上面有一个 NTFS 分区 在该分区上 有一个 www 目录 用于保存我的网页内容 它在启动时自动安装为 media t515
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是

随机推荐

  • 全量数据同步与数据校验实践——应对百亿量级分库分表异构库迁移

    在一家发展中的公司搬砖 正好遇到分库分表 数据迁移的需求比较多 就入坑了 最近有个系统重构 一直做数据重构 迁移 校验等工作 基本能覆盖数据迁移的各个基本点 所以趁机整理一下 数据同步的场景是 数据库拆分 数据冗余 数据表重构 数据重构服务
  • wget 命令 简单使用

    wget 命令用于在终端中下载网络文件 格式为 wget 参数 下载地址 1 wget 常用参数 b 后台下载模式 r 递归下载 p 下载页面内所有资源 包括图片 视频 音频等 c 断点续传 t 最大尝试次数 P 下载到指定的目录 2 案例
  • 新一代云数据库的引领者---AWS

    文章目录 前言 正文 1 数据库多样性挑战与数据库云管平台的机遇 1 1 数据库多样性挑战 1 2 数据库云管平台的机遇 1 2 1 数据库市场百花齐放 多元混合数据库管理给企业带来挑战 1 2 2 企业普遍缺乏多元混合数据库管理的人才和技
  • okyo Cabinet简介

    http idning github io ssd cache html http blog 163 com zbr 4690 blog static 126613593200910312346337 http blog chinaunix
  • Param ‘serviceName‘ is illegal, serviceName is blank --------报错

    报错内容为 java lang IllegalArgumentException Param serviceName is illegal serviceName is blank 报错原因 SpringBoot2 4版本之后不会默认加载b
  • linux测试命令

    如下是一份 Linux 机器的渗透测试备忘录 是在后期开发期间或者执行命令注入等操作时的一些典型命令 设计为测试人员进行本地枚举检查之用 系统信息命令 对于本地的枚举检查很有用 基于 Redhat CentOS RPM 的发行版 YUM 命
  • 解决SpringMVC Controller中接受日期格式发生400错误

    解决SpringMVC Controller中接受日期格式发生400错误 用户中有生日 Date 属性 用户注册的时候 选择日期即可 然后提交表单 可SpringMVC报错 意思是不能把字符串转为日期类型的 如果是strtus的话 压根不是
  • Vuex概念+实现原理

    文章目录 一 Vuex概念 1 Vuex是什么 2 Vuex的具体工作 3 Vuex 的属性包含以下6个 二 Vuex实现原理 2 1 store是怎么注册的 2 2 mutaions是怎么实现的 2 3 commit是怎么实现的 2 4
  • GPIO 模拟SPI

    GPIO 模拟SPI SPI简介 SCPH 0 SCPOL 0 的 SPI 协议时序图 在这里插入图片描述 https img blog csdnimg cn daeedeab80d14239aa1331736b17bf7d png SCP
  • 火狐浏览器书签无法同步问题解决

    问题 个人笔记本的火狐浏览器登录帐号后无法同步公司火狐浏览器的书签信息 更换了不同版本的火狐浏览器后仍然同步不了 解决方案 经过查找问题发现火狐提供了本地服务和全球服务两套服务方案 而两套服务是不互通的 公司电脑登录帐号时选择的是本地服务
  • 初始C语言——100-1000之间的素数排序,10个数一行

    思路分析 首先我们要清楚什么是素数 一个大于1的自然数 且除了1和它本身外 不能被其他自然数整除的数叫素数 然后我们需要考虑怎样实现100 1000之间素数的输出 是不是需要用到遍历 而for循环就是一种遍历 那怎么写for循环呢 很显然
  • HCIP第四天笔记

    网络类型 根据数据链路层所使用的协议及规则来进行划分 P2P网络 点到点网络 MA网络 多点接入网络 BMA 广播型多点接入网络 NBMA 非广播型多点接入 数据链路层协议以太网协议 封装数据帧是 需要假如源MAC地址和目标MAC地址 MA
  • 利用Qemu Guest Agent (Qemu-ga) 实现 Openstack 监控平台

    http www csdn123 com html itweb 20130729 27101 27081 27076 htm 利用Qemu Guest Agent Qemu ga 实现 Openstack 监控平台 经常使用vmWare的同
  • java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream

    使用不带hadoop的spark包 在成功启动pyspark前需要在spark的配置文件conf spark env sh里指定hadoop 格式是spark要求好的 现在以hadoop这个命令已经在环境变量中存在的情况为例 spark e
  • Win10安装docker遇到的坑

    记录下Win10安装docker遇到的坑 首先win10是分版本的 这里举例其中两个版本 家庭版 和 企业版 我电脑的操作系统之前是家庭版的 安装了Docker Desktop 又启用了hyper v 安装成功后使用docker versi
  • typedef struct

    用途一 定义一种类型的别名 而不只是简单的宏替换 可以用作同时声明指针型的多个对象 比如 char pa pb 这多数不符合我们的意图 它只声明了一个指向字符变量的指针 和一个字符变量 以下则可行 typedef char PCHAR PC
  • SpringBoot自定义banner

    在resources下添加文件banner 自定义编写然后重新启动 也可以去网站上找Text to ASCII Art Generator TAAG 然后复制到banner txt
  • 人工智能与具体应用领域如何进行有效的结合

    人工智能与具体应用领域如何进行有效的结合 人工智能 Artificial Intelligence 简称AI 它是研究 开发用于模拟 延伸和扩展人的智能的理论 方法 技术及应用系统的一门新的技术科学 它是计算机科学的一个分支 它企图了解智能
  • 阿里云ECS服务器购买及域名绑定 新手教程

    教程内容 购买阿里云域名 DNS域名解析 购买阿里云域名 1 校验域名是否已被注册 阿里云域名注册地址 https wanwang aliyun com 2 购买域名 选择钟意的域名 添加到购物车 填写信息 如何没用进行域名实名认证 就需要
  • linux 的grep命令

    一 语法 grep全称是Global Regular Expression Print 表示全局正则表达式打印 grep命令是一种强大的文本搜索工具 用于查找文件中符合条件的字符串 它能使用正则表达式搜索文本 并把匹配的行打印出来 root