Linux grep

文章目录

  • 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只能邻近去重
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【考研数学】李林《880》vs 李永乐《660》完美使用搭配

没有说谁一定好&#xff0c;只有适不适合自身情况&#xff0c;针对自身弱点选择性价比才最高。 两者侧重点不同&#xff0c;660适合强化前期&#xff0c;弥补基础的不足&#xff0c;880适合强化后期&#xff0c;题型全面&#xff0c;提高我们对综合运用知识的能力。 选择习题…

2.4_1 死锁的概念

文章目录 2.4_1 死锁的概念&#xff08;一&#xff09;什么是死锁&#xff08;二&#xff09;死锁、饥饿、死循环的区别&#xff08;三&#xff09;死锁产生的必要条件&#xff08;四&#xff09;什么时候会发生死锁&#xff08;五&#xff09;死锁的处理策略 总结 2.4_1 死锁的…

MySQL 存储过程(超详细)

一、什么是存储过程&#xff1f; 存储过程可称为过程化SQL语言&#xff0c;是在普通SQL语句的基础上增加了编程语言的特点&#xff0c;把数据操作语句(DML)和查询语句(DQL)组织在过程化代码中&#xff0c;通过逻辑判断、循环等操作实现复杂计算的程序语言。换句话说&#xff0c…

JVM-虚拟机栈概述

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

瑞芯微 | I2S-音频基础 -1

最近调试音频驱动&#xff0c;顺便整理学习了一下i2s、alsa相关知识&#xff0c;整理成了几篇文章&#xff0c;后续会陆续更新。 喜欢嵌入式、Li怒晓得老铁可以关注一口君账号。 1. 音频常用术语 名称含义ADC&#xff08;Analog to Digit Conversion&#xff09;模拟信号转换…

TCP重传机制、滑动窗口、拥塞控制

一、总述 TCP&#xff0c;Transmission Control Protocol&#xff0c;是一个面向连接、基于流式传输的可靠传输协议&#xff0c;考虑到的内容很多&#xff0c;比如数据包的丢失、损坏、分片和乱序等&#xff0c;TCP协议通过多种不同的机制来实现可靠传输。今天&#xff0c;重点…

代码随想录算法训练营第三十九天|62.不同路径、63. 不同路径 II

62.不同路径 刷题https://leetcode.cn/problems/unique-paths/description/文章讲解https://programmercarl.com/0062.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84.html视频讲解https://www.bilibili.com/video/BV1ve4y1x7Eu/?vd_sourceaf4853e80f89e28094a5fe1e220d9062 题解&…

基于YOLOv5的无人机视角水稻杂草识别检测

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文主要内容:详细介绍了无人机视角水稻杂草识别检测整个过程&#xff0c;从数据集到训练模型到结果可视化分析。 博主简介 AI小怪兽&#xff0c;YOLO骨灰级玩家&#xff0c;1&#xff09;YOLOv5、v7、v8优化创新&#xff0c;轻松涨点…

探讨2024年AI辅助研发的趋势

一、引言 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经成为当今时代最具变革性的技术之一。AI的广泛应用正在重塑各行各业&#xff0c;其中&#xff0c;AI辅助研发作为科技和工业领域的一大创新热点&#xff0c;正引领着研发模式的深刻变革。从医药…

用WSGI发布flask到centos7.9

起因 想把自己的Flask或者Django网站&#xff0c;发布到服务器上&#xff0c;让大家都可以访问。网上搜的结果&#xff0c;要么是用NginxuWSGI&#xff0c;要么是用NginxGunicorn。大名鼎鼎的Nginx我早有耳闻&#xff0c;那么两位俩玩意是啥呢。 WSGI是什么 uwsgi是Nginx和w…

用pyqt5实现的滑动开关(有动画效果)

1、效果展示 2、控件源码 import sys from PyQt5.QtCore import Qt, QRect, QPoint, QVariantAnimation from PyQt5.QtGui import QPainter, QColor from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayoutclass SwitchButton(QWidget):def __init__(self, parent=N…

华为设备小型园区网方案(有线+无线+防火墙)

&#xff08;一&#xff09;配置有线部分 1.配置LSW2 &#xff08;1&#xff09;创建相关vlan [LSW2]vlan batch 10 3000 &#xff08;2&#xff09;配置连接LSW1的Eth-Trunk1&#xff0c;透传VLAN 10 3000 [LSW2]int Eth-Trunk 1 [LSW2-Eth-Trunk1]port link-type trunk [LSW2…

关于Linux上的$ORIGIN解说

1、Linux RPATH & $ORIGIN 许多现代C / C 项目都利用Autotools创建GNU构建系统&#xff0c;例如 根据平台生成make文件。 可执行文件&#xff08;二进制文件&#xff09;在生成/编译过程中生成&#xff0c;并且可以在执行编译的计算机上本地执行。 但是&#xff0c;如果将…

centos 系统 yum 无法安装(换国内镜像地下)

centos 系统 yum 因为无法连接到国外的官网而无法安装&#xff0c;问题如下图&#xff1a; 更换阿里镜像&#xff0c;配置文件路径&#xff1a;/etc/yum.repos.d/CentOS-Base.repo&#xff08;如果目录有多余的文件可以移动到子目录&#xff0c;以免造成影响&#xff09; bas…

【PyTorch][chapter 22][李宏毅深度学习]【无监督学习][ WGAN]【理论一】

简介&#xff1a; 2014年Ian Goodfellow提出以来&#xff0c;GAN就存在着训练困难、生成器和判别器的loss无法指示训练进程、生成样本缺乏多样性等问题。从那时起&#xff0c;很多论文都在尝试解决&#xff0c;但是效果不尽人意&#xff0c;比如最有名的一个改进DCGAN依靠的是对…

B端系统优化,可不是换个颜色和图标,看看与大厂系统的差距。

Hi&#xff0c;我是贝格前端工场&#xff0c;优化升级各类管理系统的界面和体验&#xff0c;是我们核心业务之一&#xff0c;欢迎老铁们评论点赞互动&#xff0c;有需求可以私信我们 一、不要被流于表面的需求描述迷惑。 很多人找我们优化系统界面&#xff0c;对需求总是轻描淡…

开源模型应用落地-工具使用篇-Ollama(六)

一、前言 在AI大模型百花齐放的时代&#xff0c;很多人都对新兴技术充满了热情&#xff0c;都想尝试一下。但是&#xff0c;实际上要入门AI技术的门槛非常高。除了需要高端设备&#xff0c;还需要面临复杂的部署和安装过程&#xff0c;这让很多人望而却步。不过&#xff0c;随着…

设计模式大题做题记录

设计模式大题 09年 上半年&#xff1a; 09年下半年 10年上半年 10年下半年 11年上半年 11年下半年 12年上半年 12年下半年 13年上半年 13年下半年

数据结构——lesson7二叉树 堆的介绍与实现

前言&#x1f49e;&#x1f49e; 啦啦啦~这里是土土数据结构学习笔记&#x1f973;&#x1f973; &#x1f4a5;个人主页&#xff1a;大耳朵土土垚的博客 &#x1f4a5; 所属专栏&#xff1a;数据结构学习笔记 &#x1f4a5;对于数据结构顺序表链表有疑问的都可以在上面数据结…

计算机中丢失缺少mfc100.dll文件该如何解决?

当你打开某个应用程序时&#xff0c;有时候会遇到一个“mfc100.dll丢失”或找不到mfc100.dll的错误信息提示。这种情况表明你的计算机缺少一个名为mfc100.dll的动态链接库文件。这个文件是由Microsoft VC 2010 Redistributable Package提供的&#xff0c;它是一组可重用的组件&…