一、基本正则表达式:Grep的用法介绍

1、grep简介:

Grep 是一种强大的文本搜索工具,它能根据模式,搜索文本,并将符合模式的文本行显示出来。

Grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。Grep可用于shell脚本,因为grep是通过返回一个状态值来说明搜索的状态,如果搜索成功,就返回0;如果不成功,则返回1。我们利用这些返回值就可以很方便地进行一些文本处理工作。

2、grep正则表达式元字符集:

‘^grep’:

锚定行首,此字符后面的任意内容必须出现在行首。

‘grep$’:

锚定行尾,此字符前面的任意内容必须出现在行尾。

^$:

空白行

*:

匹配其前面的字符任意次

.*:

任意长度的任意字符

?:

匹配其前面的字符1次或0次

.:

匹配任意单个字符

[^]:

配指定范围外的任意单个字符

x\{m,\}

重复字符x,m次,如:’0\{5\}’匹配包含5 个0的行。

x\{m,n\}:

匹配其前面的字符x至少m次,至多n次。

2、字符集合:

[:space:]: 空白字符        [:punct:]: 标点字符

[:lower:]: 小写字符        [:upper:]: 大写字符

[:digit:]: 数字             [:alnum:]: 数字和大小写字母

[:alpha:]: 大小写字母      [:graph:]: 非空字符

3、grep命令选项:

-i,--ignore-case

忽略大小写差别

-q,--quiet

取消显示,只返回退出状态。0表示找到了匹配的行

-color

给符合条件的加上颜色

-v,--revert-match

显示没有被模式匹配的行

-o

只显示被模式匹配到的字符串

4、位置锚定:

^: 锚定行首,此字符后面的任意内容必须出现在行首。

如:grep '^root' etc/passwd

$: 锚定行尾,此字符前面的任意内容必须出现在行尾。

如:grep 'bash$' etc/passwd

^$:空白行 如: grep '^$' /etc/passwd  /etc/passwd中的空白行就会被匹配

\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现

\>或\b:锚定词尾,其前面的任意字符必须作为单词的尾部出现

如:   grep "\<root" /etc/passwd

grep "root\>" /etc/passwd

5、分组

\(\)

ab*表示a后面的b可以出现0次1次或者任意次;

而分组  \(ab\)*则表示ab这个整体可以出现0次1次或者任意次

后向引用:

\1: 引用第一个左括号以及与之对应的右括号所包含的内容

\2:引用第二个左括号以及与之对应的右括号所包含的内容

例如:建立一个文档test1.txt , 内容为

(He love his lover.

She like her lover.

He like his liker.

She love her liker.)

输入 #grep  ‘l..e.*l..e’  test1.txt

则 He love his lover.

She like her lover.

He like his liker.

She love her liker.

输入:#grep ‘\(l..e\).*\1’ test1.txt

则  He love his lover.

He like his liker.

二、扩展正则表达式(egrep)

1、字符匹配:

.: 匹配任意单个字符

[]:匹配指定范围内的任意单个字符

[^]:匹配指定范围外的任意单个字符

2、次数匹配:

*:匹配其前面的字符任意次

?:匹配其前面的的字符1次或0次

+:匹配其前面的字符至少1次

{m,n}:匹配其前面的字符至少m次,至多n次。不需要反斜杠(\)

3、位置锚定:

^:锚定行首,此字符后面的任意内容必须出现在行首

$:锚定行尾,此字符前面的任意内容必须出现在行尾

\<:锚定词首,其后面的任意字符必须作为单词首部出现

\>:锚定词尾,其前面的任意字符必须作为单词的尾部出现

4、分组:

():分组

\1, \2, \3, ...

或者

|: or

如:egrep 'C|cat' /test.txt  其意思是说在test.txt中查找C或cat

注:    egrep = grep  -E

转载于:https://blog.51cto.com/mg5211/1148807

Linux入门: grep与egrep 知识总结相关推荐

  1. Linux正则表达式grep与egrep

    grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...

  2. 如何进入linux基本目录,Linux入门的一些基本知识整理

    原标题:Linux入门的一些基本知识整理 图形模式与文字模式的切换方式 Linux预设提供了六个命令窗口终端机让我们来登录. 默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1. ...

  3. linux里grep和egrep,fgrep的区别

    例子: 1. : 格式: grep [option] pattern filename 注意: pattern如果是表达式或者超过两个单词的, 需要用引号引用. 可以是单引号也可双引号, 区别是单引号 ...

  4. Linux下grep、egrep及fgrep命令详解

    grep命令是linux下的行过滤工具,其参数繁多,下面就一一介绍个个参数的作用,希望对大家有所帮助. grep -- print lines matching a pattern (将符合样式的该行 ...

  5. linux中的grep和egrep命令,Linux之grep和egrep命令总结

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

  6. linux中egrep命令的作用,linux之grep和egrep命令

    grep [-cnivrABC--color] 'word' filename --color可以把匹配到的内容字体换成彩色.-n :显示输出内容的行号-c :打印出符合要求的行数-v :打印不符合要 ...

  7. Linux入门需要学习的知识--摘至《鸟哥的Linux私房菜》

    1. 计算机概论与硬件相关知识: 因为既然想要走Linux这门路,信息相关的基础技能也不能没有啊! 所以先理解一下基础的硬件知识,不用一定要全懂啦!又 不是真的要你去组计算机-_, 但是至少要&quo ...

  8. Linux入门及企业服务器知识学习笔记

    1. Linux是类UNIX操作系统,是一个基于POSIX移植操作系统接口和UNIX的多用户.多任务.支持多线程和多CPU的操作系统. 2.用于企业服务器.WEB网站平台.大数据.虚拟化.Androi ...

  9. linux egrep和grep区别,Linux中的Grep,Egrep和Fgrep有什么区别?

    在Unix系统上的一个着名的搜索工具,可以用于搜索任何东西,无论是一个文件,或一行或多行的文件是grep实用程序.它在功能上非常庞大,这可以归因于它支持的大量选项:使用字符串模式或reg-ex模式或基 ...

  10. linux 易语言窗口程序_浅谈Linux入门的基本知识

    浅谈Linux入门的基本知识 图形模式与文字模式的切换方式Linux预设提供了六个命令窗口终端机让我们来登录. 默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1.tty2 - ...

最新文章

  1. java mvc 断点续传_用SpringMVC 实现断点续传 (HTTP)
  2. 利用jvisualvm分析JVM,进行性能调优
  3. 自动检测CSRF漏洞的工具
  4. java.net.SocketException: Broken pipe问题解决
  5. 看看老外的智慧城市都是咋样的
  6. C#里如何遍历枚举所有的项
  7. 江苏实时分析评价系统项目总结报告
  8. 数据库事务 写偏斜write-skew
  9. VB编程的RS485通讯操作界面源码 本程序适应各类带RS485通讯的设备,参数可以自由修改,主要是针对各类变频器RS485通讯(RTU)格式!
  10. HITB AMS 2021 议题分析与学习,感叹华人真多
  11. 上完选修计算机绘图课心得,计算机绘图学习心得体会.doc
  12. iOS Sonar 集成流程
  13. 常见测试用例设计之水杯
  14. 【解决】package ‘xxxx‘ is not in GOROOT
  15. 朋友圈如何秀一把!用Python一键生成炫酷九宫格图片!
  16. Doxygen安装和使用
  17. 计算机网络的标准化工作与相关组织
  18. Java定义一个抽象类科学家_Java程序设计作业
  19. Kafka性能篇:为何Kafka这么快?
  20. 怎么在MAC上阅读txt小说,小说阅读器推荐

热门文章

  1. 20155320 Exp3 免杀原理与实践
  2. ConcurrentDictionary 与 Dictionary
  3. 前端工程师-JavaScript
  4. webpack:Cannot find module 'extract-text-webpack-plugin'
  5. Atitit.web ui  组件化 vs  mvc
  6. Mysql表编码查看修改
  7. 伪静态在webconfig中配置
  8. 10 行代码判定色*情*图片
  9. 两数组映射为一个哈希
  10. Spring Cloud学习笔记-005