您的位置:首页 > 运维架构 > Linux

Linux之正则表达式及通配符

2017-03-31 04:11 211 查看
正则表达式  用来匹配复合条件的字符串,是包含匹配。grep/awk/sed

. 单个任意字符,除换行符
# egrep "^.oo" /etc/passwd
root:x:0:0:root:/root:/bin/bash
^匹配行首
^abc  以abc开头
^#  以#开头
# egrep "^root" /etc/passwd
$匹配行尾
abc$  以abc结尾
^$ 匹配空白行
# grep "shutdown$" /etc/passwd
+最少匹配1次
a+     一个或多个连续的a
(abc)+   一个或多个连续的abc
?最多匹配1次,包括0次
a?    0个或1个a
(abc)?  0个或1个abc
*匹配任意次数
a*     0个或多个连续的a,grep "a*" 即整篇文档,无意
(abc)*  0个或多个连续的abc
.*任意长度的任意字符串
元字符{}
限定表达式的匹配次数

\{n\} 匹配n次  
(ab){3} 匹配ababab
\{n,m\}匹配n-m次
(ab){1,3} 匹配ab/abab/ababab
\{n,\}匹配至少n次
(ab){2,} 匹配2个及以上连续的ab
如下,使用扩展正则可省略斜杠
# egrep "^ro{2}t" /etc/passwd
root:x:0:0:root:/root:/bin/bash
# grep "^ro\{2,\}t" /etc/passwd
root:x:0:0:root:/root:/bin/bash
#grep -E "^ro{2}t" /etc/passwd
root:x:0:0:root:/root:/bin/bash



元字符[]
匹配范围内的单个字符,[]内加^可取反

[alc_?]   匹配其中任意一个
[a-z]    匹配任意一个小写字母
[A-Z] 匹配任意一个大写字母
[0-9] 匹配任意一个数字
[a-Z0-9] 匹配任意字母或数字
[^A-Z] 匹配没有大写字母的行
^[^a-z] 匹配不以小写字母开头的行
其他元字符

()组合为整体(也用在后向引用)
  ab{1,3} 匹配ab/abb/abbb
  (ab){1,3} 匹配ab/abab/ababab
|或者
  root|bin 匹配root或bin
\b单词边界
  \broot\b 匹配单词root, 不匹配keroot/rooty/brooty等字符串
\<单词的开头
  \<th 匹配以th开头的单词
\>单词的结束
  \<root\> 作用与\broot\b相同
\转义符号,可以为一些普通字符赋予特殊含义,或者将一些特殊字符变为普通字符
字符集合
  [[:blank:]]  空格(space)与定位(tab)字符
  [[:cntrl:]]  控制字符
  [[:graph:]]  非空格(nonspace)字符
  [[:space:]]  所有空白字符
  [[:print:]]  可显示的字符
  [[:xdigit:]]  十六进制数字
  [[:punct:]]  所有标点符号
  [[:lower:]]  小写字母
  [[:upper:]]  大写字母
  [[:alpha:]]  大小写字母
  [[:digit:]]  数字
  [[:alnum:]]  数字和大小写字母


通配符及元字符  用来匹配复合条件的文件名,是完全匹配

  

  *     代表任意(0到多个)字符
  ?     代表任意1个字符
  ;     连续不同命令的分隔符
  #     配置文件注释
  |     管道
  ~     用户家目录
  -     上一次的目录
  $     变量前需要加的符号
  /     路径分隔符
  \      转义
  >或1>  重定向
  >>    追加重定向
  <     输入重定向
  <<    追加输入重定向
  ‘’  单引号,不具有变量置换功能,输出即所得
  ""     双引号,具有变量置换功能,解析变量后输出
  ``     tab上面的键中间为命令,会先执行,等价$()
  {}     中间为命令区块组合或内容序列   {4,5,6}  {1..4}
  !      非
  &&    当前一个指令执行成功后,执行后一个指令
  ||    当前一个指令执行失败时,执行后一个指令
  ..    上一级目录
  .      当前目录
  ^     反向选择符,例:grep -n '^[^a-zA-Z]'  file []内的叫反向选择符,[]外的则表示定位在行首。查找行首不是英文字母的行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: