Linux grep

news2024/12/26 22:06:43

文章目录

  • 1. 基本用法
  • 2.字符转义
  • 3.二进制文件查找
  • 4.打印目标字段的附近行
  • 4. 多条件过滤
  • 5. 目录中过滤——用于在文件夹中筛选/排除指定后缀文件
  • 6.反向过滤——用于筛选
  • 7.只输出匹配内容——用于统计
  • 8. 筛选出包含字段的文件
  • 9.正则匹配
  • 10.管道和grep
  • 11.grep和wc/uniq/sort的合用

1. 基本用法

  • 使用man grep可以查看linux自带的帮助文档
gvim打开卡,cat可以在terminal中快速打开文本

grep "word"  target.txt
//在 target.txt中找word单词

grep "word"  target1.txt target2.txt
//在 target1、2.txt中找word单词

grep "word" -r ./
//在当前目录下所有文件找word单词

grep  -i "word" -r ./
//在当前目录下所有文件找word单词,忽略大小写

cat  target.txt | grep -i "word" 
// |是管道命令,将上个指令的结果所谓下个指令的输入

2.字符转义

有三种:” ‘ \

1.如何查双引号
grep \" 1.txt

2.如何查\
grep \\\\ 1.txt
grep -F '\' 1.txt  
//-F表示以字符的方式读取
grep ’\\‘ 1.txt

3.如何查单引号
grep \’ 1.txt

3.二进制文件查找

Linux二进制文件指的是可执行文件,即计算机可以直接执行的程序。二进制文件是按信息在内存中的格式表示的文件,通常不能直接查看,而必须使用相应的软件来查看。

grep -a "word" wordexe

4.打印目标字段的附近行

-A2
//打印之后的若干2行
-Bn
//打印之前的n行
-C2
//打印前后的2行

4. 多条件过滤

-e 表示或关系
借助管道符多个-e级联可以等价实现与

如下图,三个-e可以从1,txt中以或的关系筛选出行
在这里插入图片描述
更进一步地,利用管道操作,可以实现与的过滤。先过滤出包含hello的,用这个结果再进一步过滤包含zhouge的
在这里插入图片描述

5. 目录中过滤——用于在文件夹中筛选/排除指定后缀文件

grep "word" -r ./

-r --include="*.v"
-r --include=*.{php,html}
过滤以,v
过滤以php/html为后缀的文本

-r --exclude=.txt
除了以txt为后缀的其他都查

-r --exclude-dir=.svn
除了svn文件夹内部的其他都查

-r --exclude-from=filelist
将要排除的文件写入一个filelist中

-r --exclude-from=filelist
将要排除的文件写入一个filelist中

6.反向过滤——用于筛选

默认是选出符合条件的行(筛选),反向操作就是选出不符合条件的行(-v,排除)
在杀进程的时候可以用到,如 ps -aux可以查到当前进程,有很多
在这里插入图片描述
使用管道符筛选出bash进程后,使用-v反向操作,再进一步排除掉由于grep指令产生的进程
在这里插入图片描述

另外如果知道一个grep打印会有很多,可以通过-c先看看会输出多少行
在这里插入图片描述

7.只输出匹配内容——用于统计

统计word出现次数:
在这里插入图片描述
-o结合数字匹配,筛选字段
在这里插入图片描述

8. 筛选出包含字段的文件

-l 筛选出包含字段的文件
-L 筛选出不包含字段的文件

9.正则匹配

^ : 锚定行的开始 如:'^grep’匹配所有以grep开头的行。
在这里插入图片描述

$ : 锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
在这里插入图片描述

. : 匹配一个非换行符的字符 如:'gr.p’匹配gr后接一个任意字符,然后是p。
在这里插入图片描述

* : 匹配零个或多个先前字符 如:"hel*"匹配he后一个或多个l的行。记得加转移反斜线
在这里插入图片描述

上述两个一起用,即.*代表任意字符。'he.*

匹配一个指定范围内的字符,如"[Ggjrep’匹配Grep和grep,[0-9],[A-Za-z0-9]。

在这里插入图片描述
device[^A-Za-z0-9]:匹配一个不在指定范围内的字符,如:device[A-Za-z0-9]"[^A-FH-Zrep’匹配不包含A-F和H-Z的一个字母开头,紧跟rep的行。
在这里插入图片描述

< : 锚定单词的开始,如:"<grep’匹配包含以grep开头的单词的行。
在这里插入图片描述

> : 锚定单词的结束,如’grep>'匹配包含以grep结尾的单词的行。nx{m}#重复字符x,m次,如:'o2V匹配包含2个o的行。
在这里插入图片描述

{}: 重复字符x,至少m次,如:'my5,匹配至少有5个o的行。x{m,} x{m,n} 重复字符x,至少m次,不多于n次
在这里插入图片描述\

\w: 匹配文字和数字字符,也就是[A-Za-z0-9]
在这里插入图片描述
\w的反置形式,是\W,匹配一个或多个非单词字符,如点号句号等。
在这里插入图片描述

单词锁定符,如:"\bis\b"只匹配对应单词。
在这里插入图片描述

10.管道和grep

在这里插入图片描述

11.grep和wc/uniq/sort的合用

wc用于统计单词数量或者行数量
-c:字母数
-w:单词数
-l:行数
在这里插入图片描述

  • grep和wc合用,统计出现特定word的数量和行数
    在这里插入图片描述
  • 和uniq、sort合用如下
  • sort可以排序,加-u选项可以去重
  • uniq只能邻近去重
    在这里插入图片描述

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

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

相关文章

在Vue中处理接口返回的二进制图片数据

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

解决方案TypeError: string indices must be integers

文章目录 一、现象&#xff1a;二、解决方案 一、现象&#xff1a; PyTorch深度学习框架&#xff0c;运行bert-mini&#xff0c;本地环境是torch1.4-gpu&#xff0c;发现报错显示&#xff1a;TypeError: string indices must be integers 后面报字符问题&#xff0c;百度过找…

goby的安装和使用

简介 Goby是一款基于网络空间测绘技术的新一代网络安全工具&#xff0c;它通过给目标网络建立完整的资产知识库&#xff0c;进行网络安全事件应急与漏洞应急。 Goby可提供最全面的资产识别&#xff0c;目前预置了超过10万种规则识别引擎&#xff0c;能够针对硬件设备和软件业…

程序员常用的几种算法

程序员常用的几种算法 一、程序员算法汇总二、程序员常用的几种算法1.选择排序算法1.1 选择排序算法解析&#xff1a;1.2 示例代码&#xff1a; 2.插入排序算法2.1 插入排序算法解析&#xff1a;2.2 示例代码&#xff1a; 3.冒泡排序算法3.1 冒泡排序算法解析&#xff1a;3.2 示…

Go语言物联网开发安科瑞ADW300/4G电能表数据上传mqtt平台-电表接线到传输数据完整流程

电能表功能说明 ADW300是方便用户进行用电监测、集抄和管理&#xff0c;可灵活安装在配电箱中&#xff0c;可用于电力运维、环保监管等在线监测类平台中。我们本案例是用于工业售电公司对出售电的管理&#xff0c;设备可以监控用电情况、故障监控及警报&#xff0c;售电公司可…

解决 ucore lab3 无法触发 page fault 的问题

问题描述 完成清华大学操作系统实验课 ucore(x86) lab3 时&#xff0c;发现无法触发 page fault 异常&#xff0c;具体来说时 check_pgfault() 函数会在执行如下代码时报错 static void check_pgfault(void) {// ......uintptr_t addr 0x100;assert(find_vma(mm, addr) vma…

Chromium内核浏览器编译记(四)Linux版本CEF编译

转载请注明出处&#xff1a;https://blog.csdn.net/kong_gu_you_lan/article/details/136508294 本文出自 容华谢后的博客 0.写在前面 本篇文章是用来记录编译Linux版本CEF的步骤和踩过的坑&#xff0c;以防止后续再用到的时候忘记&#xff0c;同时也希望能够帮助到遇到同样问…

【操作系统概念】 第9章:虚拟内存管理

文章目录 0.前言9.1 背景9.2 按需调页9.2.1 基本概念9.2.2 按需调页的性能 9.3 写时复制9.4 页面置换9.4.1 基本页置换9.4.2 FIFO页置换9.4.3 最优(Optimal)置换9.4.4 LRU&#xff08;Least Recently Used&#xff09;页置换9.4.5 近似LRU页置换9.4.6 页缓冲算法 9.5 帧分配9.5…

java及特性的简单介绍

简介&#xff1a; 印度尼西亚有一个盛产咖啡的岛屿java&#xff0c;中文名翻译为爪哇&#xff0c;给这种新语言起码java 寓意端上一杯热咖啡。 特性&#xff1a; 1.面向对象 2.与平台无关 3.稳定安全 4.多线程 面向对象 1.面向对象语言关注的是对象&#xff0c;而不关注过程 2…

办公电脑换成MacBookPro半年之后……

小白是从2008年开始接触电脑的&#xff0c;当时朋友给我注册的第一个QQ账号是2008年4月。 从此&#xff0c;小白一直认为电脑全部都是Windows系统。直到上大学那年&#xff0c;看到了外教老师的MacBookPro…… 折腾电脑的开始居然是起源于诺基亚手机&#xff0c;给半智能S40的…

探索数据结构:单链表的实战指南

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 贝蒂的主页&#xff1a;Betty‘s blog 前言 在上一章节中我们讲解了数据结构中的顺序表&#xff0c;知道了顺序…

网络编程---网络编程入门、UDP通信程序、TCP通信程序

1.网络编程入门 1.网络编程概述 网络编程&#xff1a; 在网络通信协议下&#xff0c;实现网络互连的不同计算机上运行的程序间可以进行数据传输 计算机网络&#xff1a; 是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来&#…

微服务:Docker篇

1. 初识Docker 1.1. 什么是Docker 微服务虽然具备各种各样的优势&#xff0c;但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中&#xff0c;依赖的组件非常多&#xff0c;不同组件之间部署时往往会产生一些冲突。 在数百上千台服务中重复部署&#xff0c;环境不一定一…

方阵的特征值与特征向量

目录 特征值 & 特征向量 相关性质 特征值 & 特征向量 相关性质

【JavaEE初阶】 JVM类加载简介

文章目录 &#x1f343;前言&#x1f332;类加载过程&#x1f6a9;加载&#x1f6a9;验证&#x1f6a9;准备&#x1f6a9;解析&#x1f6a9;初始化 &#x1f384;双亲委派模型&#x1f6a9;什么是双亲委派模型&#xff1f;&#x1f6a9;双亲委派模型的优点 ⭕总结 &#x1f343…

超市小程序有哪些功能 怎么制作

超市小程序是非常有用的工具&#xff0c;可以帮助超市提升用户体验&#xff0c;提高销售额。下面我们来看一下超市小程序可以具备哪些功能&#xff0c;以及如何制作一个高效的超市小程序。 1. **商品展示与搜索功能**&#xff1a;用户可以浏览超市的商品信息&#xff0c;包括价…

JVM-虚拟机栈概述

背景&#xff1a;由于跨平台的设计&#xff0c;java指令都是根据栈来设计的。不同平台CPU架构不同&#xff0c;所以不能设计为基于寄存器。 栈是运行时单位&#xff0c;而堆是存储的单位。即&#xff1a;栈解决程序运行的问题&#xff0c;即程序如何执行&#xff0c;或者说如何…

ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

RabbitMQ的web控制端介绍

2.1 web管理界面介绍 connections&#xff1a;无论生产者还是消费者&#xff0c;都需要与RabbitMQ建立连接后才可以完成消息的生产和消费&#xff0c;在这里可以查看连接情况channels&#xff1a;通道&#xff0c;建立连接后&#xff0c;会形成通道&#xff0c;消息的投递、获取…

JDK17镜像制作

背景 获取JDK17 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 解压JDK tar -zxvf jdk-17_linux-x64_bin.tar.gz 制作JRE 由于jdk的体积比较大&#xff0c;可以使用jre来作为运行环境&#xff0c;jdk1.8及以前版本&#xff0c;自带jre&#…