Grep

grep(Globel Search Regular Expression and Printing out the line)全面搜索正则表达式并把行打印出来,是一种强大的文本搜索工具,是一个对行进行操作的搜索工作,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix 的 grep 家族包括 grep 、egrep 、 fgrep 。egrep 表示扩展的 grep ,相比 grep 支持更多的元字符。grep -E  相当于 egrep 。fgrep 是 fast grep ,不支持元字符,但是搜索速度更快。grep 过滤的结果被送到屏幕,不影响原文件内容。

grep的用法:grep    选项     模式    文件

grep不加引号直接过滤字符串 ;grep在进行模式匹配的时候必须加引号,单引号和双引号都可以 ;grep在引用变量的时候必须加双引号

grep的选项

  • -r   : 递归搜索
  • -v   :反向选取
  • -o   : 只显示被模式匹配到的字符串,而不是整个行
  • -i   :  匹配时不区分大小写
  • -A  5 : 显示匹配到的行时,显示后面的 5 行
  • -B  5  : 显示匹配到的行时,前面的 5 行
  • -C  5  : 显示匹配到的行时,前后的 5 行
  • -E : 使用扩展的正则表达式

grep支持基本正则表达式: 基本正则表达式

grep -E 也支持扩展正则表达式:扩展正则表达式

grep 支持的字符

  • [:digit:] :  所有数字,相当于 0-9  或者 \d
  • [:lower:] :所有的小写字母
  • [:upper:]:所有的大写字母
  • [:alpha:] :所有的字母
  • [:alnum:] :相当于[0-9a-zA-Z]
  • [:space:] :空白字符,相当于 \s
  • [:punct:] :所有标点符号

grep -E 或  egrep 支持的字符

  • \s:匹配任何空白字符,包括空格、制表符、换页符等,与[ \f\n\r\t\v ] 等效
  • \S:匹配任何非空白字符,与 [ ^\f\n\r\t\v ] 等效
  • \w:匹配任何字类字符,包括下划线,与 [A-Za-z0-9_] 等效
  • \W:匹配任何非单词字符,与[ ^A-Za-z0-9_] 等效

grep -P 支持的字符

  • \d :数字字符匹配,等效于 [0-9]

举例

1、匹配 eg.text 中以 # 开头,且后面跟了至少一个空白字符,而后又跟了任意非空白字符的行
grep "^#[[:space:]]\{1,\}[^[:space:]]" eg.text
拆开 grep "^# [[:space:]] \{1,\} [^[:space:]]" eg.text
grep -E "^#\s\{1,\}\S" eg.text
拆开 grep -E "^# \s \{1,\} \S" eg.text 2、匹配 eg.text 中以 包含了 :一个数字: 的行
grep ":[[:digit:]]:" eg.text
拆开 grep ": [[:digit:]] :" eg.text
grep -P ":\d:" eg.text
拆开 grep -P ": \d :" eg.text

分组的例子

grep "l..e.*l..er" test.txt
grep "\(l..e\).*\1r" test.txt

匹配 1-255 的数字

grep -E "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>" num.txt

匹配Email地址:任意长度数字字母@任意长度数字字母

grep -E "^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" email.txt

匹配手机号码,把手机号码是1[3|4|5|8]后面接9位数字的过滤出来

grep -E "\<1[3|4|5|8][0-9]{9}\>" tel.txt

Linux中grep工具的使用的更多相关文章

  1. linux中grep工具

    正则表达式 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义.其实grep还可以找出符合某个模式(Pattern)的一类字符串.例如找出所有符合xxxxx@xxxx. ...

  2. 12个 Linux 中 grep 命令的超级用法实例

    12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一 ...

  3. linux中grep命令的使用

    转载:http://blog.csdn.net/universsky/article/details/8866402 linux中grep命令的使用 grep (global search regul ...

  4. [转帖]Linux中awk工具的使用

    Linux中awk工具的使用 2018年10月09日 17:26:20 谢公子 阅读数 2170更多 分类专栏: linux系统安全   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...

  5. Linux中grep和egrep命令详解

    rep / egrep 语法: grep  [-cinvABC]  'word'  filename -c :打印符合要求的行数-i :忽略大小写-n :在输出符合要求的行的同时连同行号一起输出-v ...

  6. Linux中Grep常用的15个例子【转】

    转自:https://www.aliyun.com/jiaocheng/1390860.html?spm=5176.100033.1.9.6a1e41e8Pdjynm 摘要:Grep命令主要用于从文件 ...

  7. linux中grep命令的用法

    作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的. 首先谈一下grep命令的常用格式为:[grep  [选项]  "模式"  [ ...

  8. Linux中grep命令的12个实践例子

    grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和 ...

  9. linux中grep/egrep的使用

    grep也是linux中查找的一个利器,运维.程序员必掌握的 下面针对grep的参数进行说明: --color  重点标记匹配到项grep "a word" datafile -- ...

随机推荐

  1. WebService和Web API 区别

    WebService的特征: 1 基于SOAP协议的,数据格式为XML 2 只支持HTTP协议,只能部署在IIS上 3 不是开源的,但可以被任意一个了解XML的人使用 SOAP :简单对象访问协议Si ...

  2. vs2019远程调试

    VS2019远程调试 这几天遇到个很是纠结的问题,同样的源代码,放在测试服务器,完美运行.但是上线正式环境就是死活显示不出来.于是想到了微软的远程调试功能,这里用VS2019举例. 下载远程访问工具 ...

  3. pytorch(07)数据模型的读取

    DataLoader与Dataset pytorch中的数据读取机制 graph TB DataLoader --> DataLoaderIter DataLoaderIter --> S ...

  4. Python2021哔哩哔哩视频爬取

    一.找到想要爬取的视频,进入网页源代码 在网页源代码里面可以很容易的找到视频各种清晰度的源地址 二.对地址发送请求 如果对视频源地址发送get请求会返回403 通过按F12进入开发者工具分析 发现并不 ...

  5. 优秀的vue服务端渲染框架

    目前国内优秀的基于vue的ssr框架有minissr,可以在服务端生成html代码,有利于搜索引擎爬取. https://www.wechatmini.com/vue/minissr 使用方法可以参考 ...

  6. addEventListener的第三个参数详解

    示例代码 element.addEventListener("mousedown", func, { passive: true });  element.addEventList ...

  7. NET 5.0 Swagger API 自动生成MarkDown文档

    目录 1.SwaggerDoc引用 主要接口 接口实现 2.Startup配置 注册SwaggerDoc服务 注册Swagger服务 引用Swagger中间件 3.生成MarkDown 4.生成示例 ...

  8. python3 中is和==的区别

    is    身份运算符,用来判断对象是否属于同一地址 (python内置函数id() 可以返回对象地址) ==  比较运算符,用于判断值是否相同

  9. Tkinter系列教程01—引言和安装Tk—Python GUI编程

    目录 Tkinter教程系列01--引言和安装Tk 引言 什么是Tkinter 安装 Tk 为 Windows 安装 Tk 验证是否安装正确 为 GNU/Linux 安装 Tk 使用 Linux 的包 ...

  10. C++ 虚函数的内部实现

    C++ 虚函数的内部实现 虚函数看起来是个玄之又玄的东西,但其实特别简单!了解了虚函数的内部实现,关于虚函数的各种问题都不在话下啦! 1. 知识储备 阅读这篇文章,你需要事先了解以下几个概念: 什么是 ...