`

【Linux基础篇】通配符与Grep正则表达式

 
阅读更多

 

bash Shell本身不支持正则表达式,使用正则表达式的是Shell命令和工具

如grep,sed,awk

 

正则表达式元字符:?、 *、 []、 {}、 ^

这些元字符在通配中的含义与在正则表达式中不一定相同

*     表示任意位置任意字符

echo hell*.txt  匹配结果:hello.txt,hellu.txt, helloo.txt

 

?    表示1个任意字符

echo hell?.txt  只匹配hello.txt, hellu.txt

 

[]    表示某1范围

echo [a-z]*.txt   匹配所有以字母a~z开头的txt文件

 

{}    表示1组表达式的集合

echo {[a-z*.txt, *.pdf]} 匹配a~z开头的txt文件,和pdf文件

 

^    表示取反(不代表行首)

echo [a-h]*.[^txt]* 匹配以字母a~h开头并且后缀不是txt的文件

 

 

正则表达式

GREP Global search Regular Expression and Print out the line

全局搜索正则表达式并将结果打印按行打印

 

grep 文本搜索

ps -ef | grep tomcat

grep搜索的数据源:

1. 通过管道传递过来的文本数据

2. 指定文件中进行搜索

 

grep [选项] [模式] [文件]

 

在1个或多个文件中搜索满足模式的文本行

模式后面所有字符串被解析为文件名,可以跟多个文件名

 

option

-c  只输出匹配的行数

-i   搜索时忽略大小写

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

-l   只列出符合匹配的文件名,而不列出具体的匹配行

-n  列出所有的匹配行,并显示行号

-w  匹配整词

-x   匹配整行

-r    递归搜索

-E   支持扩展的正则表达式

-F   不支持正则表达式,按字符串字母意思进行匹配

 

只要模式中包含空格,则必须用引号将整个字符串括起来,否则,空格后面的字符串将被解析为文件名

 

 

grep -n  x-forwarded-for  a.txt  b.txt  列出匹配行,并显示行号

more -113 a.txt   根据行号查看该行前后的内容

 

-c 

grep -c Certificate *.txt 只显示包含模式行的数量

 

-n

grep -n Certificate *.pem  在行内容前面附加该行在文件中的行号

 

-i

grep -i Certificate *.pem   不区分大小写匹配Certificate

 

-h

grep -h Certificate *.pem  不再显示匹配行所在的文件名

 

-l

grep -l Certificate *.pem   只列出符合匹配的文件名,而不列出具体的行

 

-r

grep -r Certificate *  递归搜索当前目录和子目录

 

-w grep命令使用-w后,元字符不再解析为特殊含义字符,照字面意思解析

grep -w cer*  00.pem   整词匹配"cer*"

 

-x

grep -x Hello  *.pem     整行匹配"Hello"

 

 

grep与正则表达式结合使用

匹配行首

grep  ^-  *.pem           匹配以'-'开头的行

grep  -c  ^$   00.pem   匹配空白行

grep  -c  ^[^$]  00.pem  匹配非空白行

匹配大小写

grep -n  [cC]ertificate  00.pem 

grep -i certificate 00.pem

匹配重复字符

grep   ^/..../   00.pem   匹配以"/"开头,跟4个任意字符,接着跟"/"的行

grep   ^-*B    00.pem   匹配以"-"开头,重复"-"任意次,然后是"B"字符的行

转义符

grep   edu\.org\.cn  00.pem  对"."进行转义,按字面意思处理

grep   \-\{5,\}   00.pem  对"-"进行转义

精确匹配

grep "\<the\>"  re01  精确匹配"the"单词

 

或字符,grep需要加-E选项才支持"|"

grep -E  "OU|UO"  00.pem 

 

匹配任意字符 .

ls -al | grep .2006.  抓取所有包含2006的行 

 

egrep 等价于grep -E

它是扩展后的grep命令,支持基本和扩展的正则表达式

扩展的正则表达式:

? 匹配0次或1次

+   至少匹配1次

|    或

()   通常与"|"结合使用,表示一组可选的字符集合

 

egrep  "seu.edu|certificate"   00.pem

egrep  "^-+B"   00.pem

 

 

分享到:
评论

相关推荐

    java正则表达式通配符图例详解

    正则表达式通配符.jpg正则表达式通配符.jpg正则表达式通配符.jpg正则表达式通配符.jpg正则表达式通配符.jpg正则表达式通配符.jpg

    linux grep正则表达式与grep用法详解

    需要大家牢记:正则表达式与通配符不一样,它们表示的含义并不相同  正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理。本文以grep为例来讲解正则表达式。 grep命令 功能:输入...

    VBA利用通配符或正则表达式删除Word中选中部分的多余空行

    网上测试了很多,大多数都不满意。于是自己编写了一个。VBA利用通配符或正则表达式删除Word中选中部分的多余空行,支持把手动换行符替换为段落标记处理。

    linux通配符和正则表达式怎么用.pdf

    linux通配符和正则表达式怎么用.pdflinux通配符和正则表达式怎么用.pdf

    grep用法详解---grep与正则表达式

    首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同! 正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串。vim、grep、awk 、sed 都支持正则表达式,也正是...

    关于在LABVIEW中使用正则匹配公式.vi

    在labview中使用正则匹配模式很简单,难的就是使用正则表达式。很多人都搞不明白,查了很多资料还是不太明白。实际上就是一些类似通配符在作怪和...正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

    C++代码实例:正则表达式

    一种简单的正则表达式是由英文字母(区分大小写)、数字及通配符“*”和“?”任意组合而成的。“?”代表任意一个字符,“*”代表零个或任意多个字符。例如,a*b可以匹配acb,aabb,afdfdb,ab等,但不可以匹配ac,bb,...

    一些常用正则表达式常用

    例如正则表达式r.t匹配这些字符串:rat、rut、r t,但是不匹配root。 $ 匹配行结束符。例如正则表达式weasel$ 能够匹配字符串"He's a weasel"的末尾,但是不能匹配字符串"They are a bunch of weasels."。 ^ 匹配...

    Qt 正则表达式例程

    Qt正则表达式例程,包含字符串搜索、字符串替换等。配合博文http://blog.csdn.net/lankin2013/article/details/41989961 Qt的正则表示类是QRegExp,在很多情况下都可以用到,比如字符串验证、字符串搜索、搜索并替换...

    正则表达式大全学习文档

    正则表达式的使用方法,正则表达式通配符的总结,正则表达式使用示例的学习文档,针对web开发人员使用js来写正则表达式

    linux下的通配符与正则表达式

    通配符 ...但是grep awk sed支持正则表达式 [root@hadoop-bigdata01 test]# touch aa [root@hadoop-bigdata01 test]# touch aab aabb [root@hadoop-bigdata01 test]# ll total 0 -rw-r–r– 1 root

    正则表达式

    上面的正则表达式依然匹配单个字符,这是因为还未在正则表达式中使用”通配符”,“通配符”是可以匹配多个字符的特殊字符。正则表达式中”通配符”远远超出了普通通配符的功能,它们被称为预定义字符:例如 1).:...

    正则表达式或通配符匹配的代码

    先用如“7-Zip”解压软件将regexp.shar.Z解压为regexp.shar。再将regexp.shar拷贝至Desktop Linux下,在命令行终端用 sh regexp.shar解压它,然后就可以看到各文件了。

    正则表达式学习教程

    当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。这里只是让你明白...

    正则表达式30分钟入门教程

    当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。这里只是让你明白...

    正则表达式在excel里的应用实例

    正则表达式在excel下的应用实例,难得的精品。。。。。。

    不得不看的正则表达式概述视频教程

    张孝祥老师讲解,内容详细。目录:什么事正则表达式?文件路径通配符正则表达式元字符与子匹配……

    正则表达式概述 什么是正则表达式 .

    正则表达式概述 正则表达式在程序设计语言中存在着广泛的应用,特别是用来处理字符串。如匹配字符串、查找字符串、替换字符串等。可以说,正则表达式是一段文本或一个公式,它是用来描述用某种模式去匹配一类字符串...

Global site tag (gtag.js) - Google Analytics