加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

linux用到的正则表达式 基础

发布时间:2020-12-15 07:12:26 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 1. egrep password.+wrong ./error.log 在当前目录error.log文件中 找出 匹配password.+wrong 的行内容2. egrep password.+wrong ./error.log | wc

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

1. egrep password.+wrong ./error.log
   在当前目录error.log文件中 找出 匹配password.+wrong 的行内容
2. egrep password.+wrong ./error.log | wc -l
   在当前目录error.log文件中 找出 匹配password.+wrong 的行 个数
3. egrep password.+wrong ./*
   在当前目录所有文件中 找出匹配password.+wrong 的行内容
4. egrep password.+wrong ./*.log* | wc -l
   在当前目录匹配*.log* 文件中 找出匹配password.+wrong 的行个数
5.  egrep ([0-9]{2}:){2}[0-4]{2}.+password.+wrong ./error.log
  在 error.log文件中 找 nn:nn:nn....passwrod...wrong模式的文本.
6. 在shell里面 表示 普通转为元字符, 表示天生元字符转为普通字符.比如小括号,中括号

正则表达式

grep正则表达式元字符集(基本用法)

匹配次数(贪婪模式):
. 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
* 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
.* 一起用来表示任意字符。
? 或者 ?  匹配其前面的字符1次或0次。
x{m} 连续重复字符x,m次,如:'o{5}'匹配包含连续5个o的行。
x{m,} 连续重复字符x,至少m次,如:'o{5,}'匹配至少连续有5个o的行。
x{m,n} 连续重复字符x,至少m次,不多于n次,如:'o{5,10}'匹配连续5--10个o的行。

元字符:
[] 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。


位置锚定:
^: 锚定行首,此字符后面的任意内容必须出现在行首
$: 锚定行尾,此字符前面的任意内容必须出现在行尾
&;或b  锚定单词的开始,如:'&;grep'匹配包含以grep开头的单词的行。
&;或b  锚定单词的结束,如'grep&;'匹配包含以grep结尾的单词的行。

分组:
()
       (ab)*
       后向引用
       1: 引用第一个左括号以及与之对应的右括号所包括的所有内容
       2:
       3:

w 匹配一个文字和数字字符,也就是[A-Za-z0-9],如:'Gw*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
W w的反置形式,匹配一个非单词字符,如点号句号等。W*则可匹配多个。
b 单词锁定符,如: 'bgrepb'只匹配grep,即只能是grep这个单词,两边均为空格。


多个关键字查找

1.1 使用-e
grep -e 'stdio.h' -e 'stdlib.h' /usr/include/*.h
1.2 使用-f file
将关键字以行方式保存在一个文件中
1.3 使用元字符 |
grep 'stdio.h|stdlib.h' /usr/include/*.h



POSIX特殊字符类:可以通过 man 7 glob查看。。。
[:alpha:]   文字字符   [A-Za-z]
[:digit:]   数字字符   [0-9]
[:graph:]   非空字符(非空格、控制字符)
[:lower:]   小写字符  [a-z]
[:upper:]   大写字符  [A-Z]
[:alnum:]   [0-9a-zA-Z]
[:cntrl:]   控制字符 
[:print:]   非空字符(包括空格)
[:punct:]   标点符号
[:space:]   所有空白字符(新行,空格,制表符),制表符还可以用t表示
[:xdigit:]   十六进制数字和字母(0-9,a-f,A-F)
我们在用时要这样用:[[:alpha:]],如果取反就是[^[:digit:]]

正则表达式和通配符的区别
通配符是系统level的 而正则表达式需要相关工具的支持: egrep,awk,vi,perl。
在文本过滤工具里,都是用正则表达式,比如像awk,sed等,是针对文件的内容的。
通配符多用在文件名上,比如查找find,ls,cp,等等。

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读