微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则介绍_grep用法

正则介绍

正则表达式,又称规则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。


grep/egrep

grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并输出匹配行。

egrep 命令是一个搜索文件获得模式,使用该命令可以任意搜索文件中的字符串和符号,也可以为你搜索一个多个文件的字符串,一个提示符可以是单个字符、一个字符串、一个字、一个句子。


选项:



  • -c 行数

  • -i 不区分大小写

  • -n 显示行号

  • -v 取反

  • -A 后面跟数字,过滤出符合要求的行以及下面n行

  • -B 同上 ,过滤出符合要求的行以及上面n行

  • -c 同上,同时过滤符合要求的行以及上下各n行

  • -r 遍历所有子目录


grep/egrep 示例:

[root@localhosta]#grep-n'root'/etc/passwd显示行号

9112988d13609f774ded94c929549762.png-wh_

[root@localhosta]#grep-nv'nologin'/etc/passwd显示行号,筛选不含nologin字符

f5ef34fdb27e176f52e93f920560fcc1.png-wh_

[root@localhosta]#grep'[0-9]'/etc/inittab//表示显示出数字

c191cce585945ae8a8446ea369de642e.png-wh_

[root@localhosta]#grep-v'[0-9]'/etc/inittab不选数字

4b8bc0355294cb7c08be39d3ade6dc5c.png-wh_

[root@localhosta]#cat1.txt
12121414
#141212414
#sdfsfefwfw
sfsfsfsf
123556
[root@localhosta]#grep-v'^#'/tmp/a/1.txt显示开头不是#的行//^表示以什么开头
12121414
sfsfsfsf
123556

[root@localhosta]#grep'[^0-9]'/etc/inittab[^]表示非即显示不包含数字

98485be065746f3699e4e48437aefd22.png-wh_

[root@localhosta]#grep'[^a-zA-Z]'1.txt表示筛选数字

0463c0c4fba342791199b20a8a837f27.png-wh_

[root@localhosta]#grep'[r.o]'/etc/passwd.表示任意一个字符

7bcefc252c2b65780e132d3336351618.png-wh_

[root@localhosta]#grep-n'oo*'/tmp/a/1.txt*表示重复左边n个字符n:0个或多个

b1ac06ac397c57c67e35d732bba11a7e.png-wh_

[root@localhosta]#grep'.*'1.txt
o*表示匹配左边的字符n个字符即所有的字符
ro
roo
roo
rooo
roooo
rooooo
[root@localhosta]#grep'user.*bash'/etc/passwd
user:x:1000:1000:user:/home/user:/bin/bash
[root@localhosta]#grep'o\{2\}'/etc/passwd//表示匹配2个o

c498f1176df445fa2d0f7400dd682836.png-wh_

[root@localhosta]#egrep'o{2}'/etc/passwd//不加脱义符号

1a88400dbe6541dcdf7490a35fb4457c.png-wh_

[root@localhosta]#egrep'o+'/etc/passwd//+表示左边的字符的重复一次或多次

6f9c75e8504b25ca5ba613458b2a0872.png-wh_

[root@localhosta]#egrep'oo?'/etc/passwd?表示左边的0或者1个字符

358d68c176552f08674c82adba66daaf.png-wh_

[root@localhosta]#egrep'root|nologin'/etc/passwd|表示或

6f3150db7beddf43a20b2121b2c68de5.png-wh_

[root@localhosta]#egrep'(oo){1}'/etc/passwd

649b69b5452c8ecc77eb5af96c737dd2.png-wh_

原文地址:https://www.jb51.cc/regex/357801.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐