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. thymeleaf调用静态类

    为啥需要调用本地静态方法 Thymeleaf模板里面有时候需要使用本地静态常量,要是每次都在控制层传一遍很麻烦 我们需要在Thymeleaf模板我们使用比如 1代表一年级,2代表二年级,3代表三年级等 ...

  2. Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?

    Elasticsearch 提供的首个近似聚合是 cardinality 度量.它提供一个字段的基数, 即该字段的 distinct 或者 unique 值的数目.它是基于 HLL 算法的.HLL 会 ...

  3. 为什么在重写 equals 方法的时候需要重写 hashCode 方法?

    因为有强制的规范指定需要同时重写 hashcode 与 equal 是方法,许多容器类, 如 HashMap.HashSet 都依赖于 hashcode 与 equals 的规定.

  4. 那么如何使用WebSQL?

    我们需要做的第一步是通过使用"OpenDatabase"函数开放数据库,如下图所示.第一个参数是数据库的名称,接下来是版本,然后一个简单的文本标题,最后的是数据库的大小. var ...

  5. 链接克隆的设置和kvm 安装

    1.重新定义udev规则 删除   /etc/udev/rules.d/70-persistent-net.rules  网卡信息 #   >    /etc/udev/rules.d/70-p ...

  6. logback日志级别动态切换的终极方案(asm使用)

    背景 一切皆有因果,所有事情,都有事件驱动.本方案的日志级别切换是由这样的背景下产生的: 单个生产环境上,有几百近千个微服务 日志级别切换不重启服务,要求即时生效果 由业务开发人员去修改代码或增加相关 ...

  7. IMWEB 前端面试题汇总

    1.什么是盒子模型? CSS中的思维模型,每一个元素都包含margin,padding,boder,content区域,占一个盒子形状,整体称为盒模型. 2.简述一下src与href的区别? Href ...

  8. background-clip 和 background-origin

    下面都是我自己的理解, 如果有不对的地方, 还请大家帮忙指出.下面是在 chrome 浏览器上测试的 background-clip 和 background-origin 先说说background ...

  9. 前端面试题整理——关于EventLoop(1)

    下面代码输出打印值顺序: async function async1(){ console.log('async1 start'); await async2(); console.log('asyn ...

  10. 前端面试题整理——手写AJAX

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...