jane27 发表于 2018-8-21 12:27:48

shell正则

  正则表达式
  正则表达式 由   元字符 、普通字符、元字符 和普通字符组成
  语法格式
  grep   [选项]    '正则表达式'   文件列表
  命令|   grep   [选项]    '正则表达式'
  -------------------------------------------------------
  psaux|grep   sshd
  grep   root/etc/passwd
  选项?
  --color标红显示匹配字串
  -q 静默,无任何输出,一般用于检测
  -c    统计匹配的行数
  -n    显示出匹配结果所在的行号
  -v条件取反
  -i   忽略字母大小写
  -E使匹配条件转义(或者用egrep)
  元字符有哪些?
  ^匹配行首
  $   匹配行尾
  .    任意单个字符(不包括换号符号 \n)
  ----------------------------------------------------------------------
  定义前边的正则表达式出现的次数
  \+前边的正则表达式出现1次到多次
  \? 前边的正则表达式出现0次到1次
  *   前边的正则表达式出现0次到多次
  ----------------------------------------------------------------------
  \(\)   把正则表达式做为整体匹配
  ----------------------------------------------------------------------
  \{\} 限定前边正则表达式出现的次数
  {N}前边正则表达式必须出现N次
  {N,}前边正则表达式至少出现N次
  {N,M}前边正则表达式至少出现N次 最多出现M次
  ----------------------------------------------------------------------
  [ ]范围内匹配,范围内任意一个字符(次数是一次)
      匹配所有小写字母
      匹配所有大写字母
  
      匹配所有大小写字母
  
     匹配所有数字
  匹配所有大小写字母和数字
  ^[    ]    以范围内的开头
  ^
  ^
  ^
  ^
  [   ]$   以范围内的结束
  ^$
  [^    ]    范围内取反
  ^[^a-Z0-9]    匹配以符号开头的行
  ------------------------------------------------------------
  \|   或
  grep--color'^root\|^daemon'/etc/passwd   列出以root或者以daemon开头的行
  grep--color'^'/etc/passwd   列出以r或者以d开头的行
  ----------------------------------------------------------------------
  \<单词的开头
  \>单词的结束
  head -5 /etc/httpd/conf/httpd.conf| grep--color'\'    列出以带s结尾的单词的行
  \b   单词边界
  grep --color   '\btom' d.txt单词左边包含tom的行
  grep --color   'tom\b' d.txt单词右边包含tom的行
  grep --color   '\btom\b' d.txt   单词只包含tom的行 边界无其他字符
  ---------------------------------------------------------------------
  XX:XX:XX:XX:XX:XX
  grep-E--color'({2}:){5}{2}'mac.txt
  0 1 2 3 4 5 6 7 8 9 a b c d e fA B C DEF
  grep--color'\(\{2\}:\)\{5\}\{2\}'mac.txt
  ---------------------------------------------------------------------
  ip的正则表达式(括号的大小写很严格,点需要转义)
  grep -E '^(||1|2|25)\.((||1|2|25)\.){2}(||1|2|25)$'

页: [1]
查看完整版本: shell正则