Linux 正则表达式详解程序员

正则表达式(REGULAR):为处理大量的字符串而定义的一套规则和方法,为了处理大量字符串而生

常见命令参数

基础正则表达式

. :有且只有任意一个字符(包括空格) 
* :重复前面任意0或者多个字符 
.*:匹配任意字符==>所有,包括空格 
/ :转义字符,让有意义的字符,显示原型  /$  --> $本身 
^ :^d  以d开头的文件 
$ :/$  以/结尾的文体 
^$:表示空行    grep -vn "^$" h.txt -->不显示空行  -n 显示行号 
  sed -r 's#(.*) fff#I am /1#g' h.txt  仅仅取每一行的()里面的东西 
    r==reqular 
[abc]   匹配字符集内的任意一个字符  [0-9]匹配0-9 [a-z] a-z 
[^abc]  不匹配字符集内的任意字符,相当于取反 
a/{n,m} 重复前一个字母,n到m次   
     grep "0/{2/}" h.txt  重复0 2次 
     ==>  egrep "0{2}" h.txt  
     ==>  grep -E "0{2}" h.txt  
/{n,/}   重复至少n次 
/{,m/}   重复之多m次 
    注意:egrep ,sed -r过滤一般特殊字符可以不转义 
/w  : 只打印字母 
    grep "/w" h.txt  --> a b c d e f g h i  
/W  : 打印非字母 
/b  :匹配单词的定界符 
    grep "/bhello/b" h.txt 
/d  : 表示数字

扩展正则表达

扩展正则表达式:多用于 egrep,grep -E  
    1. + 重复一个或者一个以上的字符 
         grep -Eo "go+d" h.txt --> god good  
    2. ?重复0个或者一个  比 . 的范围大  
         grep -Eo "g?d"   h.txt -->  gd, d  
         grep -Eo "go?d"  h.txt -->  gd god   
    3. | 查询多个符合的字符串  
         grep -Eo "hello|world" --> hello  world 
    4. ()找出"用户组"字符串 
         egrep "g(la|oo)d" h.txt --> good glad

 

关于正则的一些小知识

1.Linux中适用于:grep,egrep,awk,sed,   
2.区别通配符和正则  例如  ls *.log这里的 * 表示 所有的 
3.Linux一般以行为单位 
4.注意字符集 export LC_ALL=C   
5.可以在 man grep/sed 过滤REGULAR 查看更多正则 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/3017.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论