欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shell编程-正则表达式

程序员文章站 2022-07-10 09:28:59
...

grep:基本查找
egrep:扩展查找

名词解使:
正则表达式是一种字符模式,用于在查找过程中匹配指定的字符。
在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/l[oO]ve/就是由正斜杠界定的正则表达式,
它将匹配被查找的行中任何位置出现的相同模式。在正则表达式中,元字符是最重要的概念。
被vim,sed,awk,grep调用
在mysql,oracle,pho,python,apache,nginx。。。中都有用到正则

基本正则符号
^ 行首符,用于查找时候以行首为开始----grep “^root” 1.txt
$ 行尾符,用于查找时候以行尾为开始----grep "root&”1.txt
. 任意符,用于查找时候代替要查找内容的任意一个字符----grep “r…t” 1.txt
/* 匹配前导符,查找时候前面一个字符可从0到多次----grep “root*” 1.txt (因直接打符号看不到 所以前面增加了)
/.* 任意多个字符,查找时候前面一个字符可从0到多次----grep “roo.*” 1.txt
[ ] 匹配指定范围,指定一个字符的范围----grep “[r R]oot” 1.txt
[ - ] 匹配指定范围,指定一个字符的范围----grep “[a-Z]oot” 1.txt
[^] 匹配不在指定组内的字符,取反----grep “[^a-Z]oot” 1.txt
\ 脱意符,去掉后面一位字符原本的意义----grep “.oot” 1.txt
< 词首定义符,查找某个以单词开头----grep“<root” 1.txt
> 词尾定义符,查找某个以单词结尾----grep “root/>” 1.txt
() 匹配稍后使用的字符或标签,以文件内查找然后加注释为例(括号前面须添加转义符,\1表示为括号里面内容)—% s/(root)/#\1/
x{m} 字符x重复出现m次,----grep “o{2}” 1.txt
扩展正则符号

  •    匹配1到N个前导字符,与*类似,区别于一个是0一个是1,  ----egrep “ro+ot”1.txt        
    

? 匹配0到1个前导字符,在不确定有没有前面一个字符的时候使用----egrep “ro?ot” 1.txt
a|b 匹配a或者b,----egrep “r(o|a)ot”