当前位置:   article > 正文

linux正则表达式_linux正则表达式以a开头

linux正则表达式以a开头


定位字符


^ 开头 ^a以a开头
$ 结尾 a$以a结尾


\ 转义


特殊字符匹配
. 匹配所有除了回车且必须匹配一个字符
* 某个字符之后加星号表示该字符不出现或出现多次
[] 定义字符类,匹配括号中的一个字符 [^] 在此出现表示否定括号中出现字符类中的字符


{} 对重复的正则表达式进行限制。{m}{m,n}
       m 该正则表达式正好出现m次
       m,n该正则表达式至少出现m次,最多出现n次
+ 与星号相似,表示其前面字符出现一次或多次,但必须出现一次
?与星号相似,但略有变化,表示该字符出现一次或不出现
| or的意思


测试使用egrep grep 不支持
. 匹配除换行符之外的任意一个字符
* 匹配前一个字符出现多次或不出现  egrep
?                                 egrep
+                                  
{} 


特殊字符
[:alnum :] 文字数字 匹配任意字母字符0-9 a-z A-Z
[:alpha:] 文字 匹配任意字母,大写或小写
[:digit:] 数字 0-9
[:graph:]非空字符( 非空格控制字符)
[:lower:] 小写字符
[:upper:]大写字符
[:cntrl:] 控制字符
[:print:] 非空字符( 包括空格)
[:punct:] 标点符号
[:blank:] 空格和TAB字符
[:xdigit:]16 进制数字
[:space:]所有空白字符( 新行、空格、制表符)


eg:
grep "^Feb 11" messages  在日志中查找特定日期的记录
grep "down$" error_log  在日志中查找apache关闭的时间
grep -c "^$" messages anaconda.log   计算文件中有多少空行


sed -i '/^#/d' httpd.conf
删除以#为开头的文件行
sed -i "/^$/d" httpd.conf
删除空行
sed -i "/#/d" httpd.conf
包含#的删掉
---------------------------------------------------------------------
eg:
[root@server ~]# cat abc 
ac
ab
abbc
abcc
aabbcc
abbbc
abbbbbc
acc
abc
asb
aa
bb

ABC
ccc
dddd
http://www
abababab
c c d
123



#grep -n "^a.$" abc
[root@server ~]# egrep "(ab){1,5}" abc
ab
abbc
abcc
aabbcc
abbbc
abbbbbc
abc
abababab
abbbc
abbbbbc
acc
abc
asb


[root@server ~]# grep "^ac$" abc
ac
[root@server ~]# grep "^a?c$" abc
[root@server ~]# grep "^ab?c$" abc
[root@server ~]# egrep "^ab?c$" abc
ac
abc
[root@server ~]# egrep "^ab+c$" abc
abbc
abbbc
abbbbbc
abc
[root@server ~]# egrep "^ab{2}c$" abc
abbc
[root@server ~]# egrep "^ab{5}c$" abc
abbbbbc
[root@server ~]# egrep "^ab{2,5}c$" abc
abbc
abbbc
abbbbbc


[root@server ~]# egrep "^a[b|c]" abc    or [root@server ~]# egrep "^a[bc]" abc
ac
ab

[root@server ~]# egrep "^a[b-z]" abc  b-z范围


[root@server ~]# egrep "http\:\/\/" abc
http://www

[root@server ~]# egrep "[[:alpha:]]" abc
ac
ab
abbc
abcc
aabbcc
abbbc
abbbbbc
acc
abc
asb
aa
bb
ccc
dddd
http://www
abababab


[root@server ~]# egrep "[[:digit:]]" abc
[root@server ~]# 


[root@server ~]# egrep "[[:space:]]" abc                                                                                                                                                                                                                                                                                                                                                                                                                                        
  查到的空格 行
[root@server ~]# 


                                         
[root@server ~]# egrep "[[:space:]]" abc
  
c c d 
[root@server ~]# egrep "[[:upper:]]" abc
ABC
----------------------------------------------------------------------------
grep [-A] [-B] [--color=auto] '查找字符串' filename
A 后面可以接数字,为after的意思,除了列出该行外,后续的n行业列出来  列出以关键字行为准的后N行
B 后面可以加数字,为before的意思,除了列出改行外,前面的n行业列出来   列出以关键字行为准的前N行


sed -i '/^#/d'  httpd.conf
sed -i '/^$/d'  httpd.conf

注意  检索字符串的时候,如果加入了  以什么开头^ 以什么结尾$那么就是限定了字符串长度


egrep "^abb?$" filename


说明:b 出现一次   那么字符串长度为3   abb
      b 不出现     那么字符串长度为2   ab
-------------------------------------------------------------------------------  
eg:
做一个ipfile文件
01.1.1.1
256.123.123.123.123
12.1234.123.123
8.8.8.8
IP验证
egrep '^((25[0-5]|2[0-4][[:digit:]]|[01]?[[:digit:]][[:digit:]]?)\.){3}(25[0-5]|2[0-4][[:digit:]]|[01]?[[:digit:]][[:digit:]]?)$' ipfile



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/323206
推荐阅读
相关标签
  

闽ICP备14008679号