Linux系统中的grep命令是一种功能强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

1、语法参数

grep [options]

[options]主要参数:

-c:只输出匹配行的计数。

-i:表示不区分大小写。

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行,表示反向查找。

--color=auto :可以将找到的关键词部分加上颜色的显示

2、实例:

1)查找包含“png”的行

[linuxmi@linux:~/linuxmi迷]$ grep -n 'png' linuxmi.py

2)查找不包含“png”的行

[linuxmi@linux:~/linuxmi迷]$ grep -vn 'png' linuxmi.py

3)查询na前面不是v的字符串

[linuxmi@linux:~/linuxmi迷]$ grep -n '[^v]na' linuxmi.py

4)查询na前面不是小写字母的字符串

[linuxmi@linux:~/linuxmi迷]$ grep -n '[^a-z]na' linuxmi.py

5)^匹配以某个字符开头的行。查询以ba开头的字符串

[linuxmi@linux:~/linuxmi迷]$ grep -n '^ba' linuxmi.py

6)[^]匹配未包含的一个任意字符。查询不以字母开头的字符串

[linuxmi@linux:~/linuxmi迷]$ grep -n '^[^a-zA-Z]' linuxmi.py

7)$匹配以某个字符结尾的行。查询以:结尾的字符串

[linuxmi@linux:~/linuxmi迷]$ grep -n '\.$' linuxmi.py

其中小数点“.”具有特殊意义,所以需要使用转义字符“\”将具有特殊意义的字符转化为普通字符

8)“.”匹配除\r\n外的任意一个字符。查询l与k之间包含两个字符的行

[linuxmi@linux:~/linuxmi迷]$ grep -n 'l..k' linuxmi.py

9)查询包含连续e字母的行

[linuxmi@linux:~/linuxmi迷]$ grep -n 'eee*' linuxmi.py

“*”表示的是重复零个或多个前面的单字符

10)查询以l开头以e结尾中间至少包含一个x的行

[linuxmi@linux:~/linuxmi迷]$ grep -n 'lxx*e' linuxmi.py

11)查询以l开头k结尾,中间的字符可有可无的行

[linuxmi@linux:~/linuxmi迷]$ grep -n 'l.*k' linuxmi.py

12){n}匹配确定的n次。查询包含两个e的行

[linuxmi@linux:~/linuxmi迷]$ grep -n 'e\{2\}' linuxmi.py

“{}”是特殊字符需要用“\”转义

来源:

https://urlify.cn/zaYrei

Linux下高效实用的grep命令的更多相关文章

  1. [转帖]linux下的find文件查找命令与grep文件内容查找命令

    linux下的find文件查找命令与grep文件内容查找命令 https://www.cnblogs.com/shileima/p/8431393.html 在使用linux时,经常需要进行文件查找. ...

  2. linux下维护服务器之常用命令

    linux下维护服务器之常用命令! 第1套如下: 正则表达式: 1.如何不要文件中的空白行和注释语句: [root@localhost ~]# grep -v '^$' 文件名 |grep -v '^ ...

  3. linux下常用的日志分析命令

    linux下常用的日志分析命令   本文介绍下,在linux中常用的一些分析日志的命令行或脚本,有需要的朋友参考下.     形如下面这样的access.log日志内容: 211.123.23.133 ...

  4. Linux下几种文件传输命令

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  5. [转帖]Linux下主机间文件传输命令

    Linux下主机间文件传输命令 https://yq.aliyun.com/articles/53631?spm=a2c4e.11155435.0.0.580ce8ef4Q9uzs   SCP命令: ...

  6. Linux下几种文件传输命令 sz rz sftp scp

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  7. [原创] Linux下几种文件传输命令 sz rz sftp scp介绍

    Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等 ...

  8. Linux下高效数据恢复软件extundelete应用实战

    作为一名运维人员,保证数据的安全是根本职责,所以在维护系统的时候,要慎之又慎,但是有时难免会出现数据被误删除的情况,在这个时候改如何快速.有效地恢复数据呢?本文我们就来介绍一下Linux系统下常用的几 ...

  9. Ubuntu Linux下设置IP的配置命令

    Ubuntu Linux下设置IP的配置命令 今天装了Ubuntu,但是发现不能上网,开始排查问题: 1.首先确定网络连接是否正确,所用的网线是否可以正常工作 2.查看网卡是否能正常工作,检测的方法如 ...

随机推荐

  1. 什么是 Java Timer 类?如何创建一个有特定时间间隔的任务?

    java.util.Timer 是一个工具类,可以用于安排一个线程在未来的某个特定时间执 行.Timer 类可以用安排一次性任务或者周期任务. java.util.TimerTask 是一个实现了 R ...

  2. Jpa设置默认值约束

    使用SpringDataJpa设置字段的默认值约束的2种方式 // 第一种方式是修改建表时的列定义属性 @Column(columnDefinition = "varchar(35) def ...

  3. 机器学习之近邻算法模型(KNN)

    1..导引 如何进行电影分类 众所周知,电影可以按照题材分类,然而题材本身是如何定义的?由谁来判定某部电影属于哪 个题材?也就是说同一题材的电影具有哪些公共特征?这些都是在进行电影分类时必须要考虑的问 ...

  4. torch.optim.SGD参数详解

    随机梯度下降法 $\theta_{t} \leftarrow \theta_{t-1}-\alpha g_{t}$ Code: optimzer = torch.optim.SGD(model.par ...

  5. SQL函数对应的数据库(案例)

  6. 如何解决Ubuntu下的“E: Unable to correct problems, you have held broken packages.”的问题. aptitude

    今天安装build-essential时出现了以下问题,这属于包的依赖. 解决方案: 1,sudo apt-get install aptitude:完成aptitude命令安装 2,sudo apt ...

  7. 转载:介绍AD另外一种奇葩的多通道复用的方法

    原文链接:http://www.eda365.com/forum.php?_dsign=74fe4957&mod=viewthread&page=1&tid=110710 在设 ...

  8. canvas 实现 github404动态效果

    使用canvas来完成github404的动态效果 前几天使用css样式和js致敬了一下github404的类似界面,同时最近又接触了canvas,本着瞎折腾的想法,便借着之前的js的算法,使用can ...

  9. 在vue中创建多个ueditor实例

    简介 在vue中创建多个ueditor实例,我使用neditor,其实就是把ueditor样式美化了下,其他和ueditor几乎一样 截图 源码地址 https://github.com/oblivi ...

  10. Web 开发中 Blob 与 FileAPI 使用简述

    本文节选自 Awesome CheatSheet/DOM CheatSheet,主要是对 DOM 操作中常见的 Blob.File API 相关概念进行简要描述. Web 开发中 Blob 与 Fil ...