《shell 脚本攻略》--正则表达式的使用

前端之家收集整理的这篇文章主要介绍了《shell 脚本攻略》--正则表达式的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

首先看一下正则表达式的组成部分:

为了匹配给定文本中的所有单词,可以使用下面的正则表达式:

(?【a-zA-Z】+?)"?"用于匹配单词前后可能出现的空格。[a-z][A-Z]+代表一个或多个字母(a~z和A~Z)

为了匹配一个IP地址,可以使用下面的正则表达式:

[0-9]{1,3}\.[0-9]{1,3}

处理特殊字符:

正则表达式$、^、.、*、+、{}等作为特殊字符。

对于正则表达式:[a-z]*.[0-9]

它可以匹配0个或多个[a-z]([a-z]*),接任意单个字符(.),再接[0-9]中的任意一个字符,所以能够匹配abcd09。

  1. 经常使用的正则表达式举例
  2.  
  3. ^ 行首
  4.  
  5. $ 行尾
  6.  
  7. ^ [ t h e ] t h e开头行
  8.  
  9. [ S s ] i g n a [ l L ] 匹配单词s i g n a ls i g n a LS i g n a lS i g n a L
  10.  
  11. [Ss]igna[lL]". 同上,但加一句点
  12.  
  13. [ m a y M A Y ] 包含m a y大写或小写字母的行
  14.  
  15. ^ U S E R $ 只包含U S E R的行
  16.  
  17. [tty]$ 以t t y结尾的行
  18.  
  19. " . 带句点的行
  20.  
  21. ^ d . . x . . x . . x 用户用户组及其他用户组成员有可执行权限的目录
  22.  
  23. ^ [ ^ l ] 排除关联目录的目录列表
  24.  
  25. ^[^d] ls l | grep ^[^d] 显示文件夹的文件
  26.  
  27. [ . * 0 ] 0之前或之后加任意字符
  28.  
  29. [ 0 0 0 * ] 0 0 0或更多个
  30.  
  31. [ iI] 大写或小写I
  32.  
  33. [ i I ] [ n N ] 大写或小写in
  34.  
  35. [ ^ $ ] 空行
  36.  
  37. [ ^ . * $ ] 匹配行中任意字符串
  38.  
  39. ^ . . . . . . $ 包括6个字符的行
  40.  
  41. [a- zA-Z] 任意单字符
  42.  
  43. [ a - z ] [ a - z ] * 至少一个小写字母
  44.  
  45. [ ^ 0 - 9 " $ ] 非数字或美元标识
  46.  
  47. [ ^ 0 - 0 A - Z a - z ] 非数字或字母
  48.  
  49. [ 1 2 3 ] 1到3中一个数字
  50.  
  51. [ D d ] e v i c e 单词d e v i c e或D e v i c e
  52.  
  53. D e . . c e 前两个字母为D e,后跟两个任意字符,最后为c e
  54.  
  55. " ^ q 以^ q开始行
  56.  
  57. ^ . $ 仅有一个字符的行
  58.  
  59. ^".[0-9][0-9] 以一个句点和两个数字开始的行
  60.  
  61. ' " D e v i c e " ' 单词d e v i c e
  62.  
  63. D e [ V v ] i c e " . 单词D e v i c ed e v i c e
  64.  
  65. [ 0 - 9 ] " { 2 " } - [ 0 - 9 ] " { 2 " } - [ 0 - 9 ] " { 4 " } 对日期格式d d - m m - y y y y
  66.  
  67. [ 0 - 9 ] " { 3 " } " . [ 0 - 9 ] " { 3 " } " . [ 0 - 9 ] " { 3 " } " . [ 0 - 9 ] " { 3 " } I P地址格式
  68.  
  69. [ ^ . * $ ] 匹配任意行
  70.  
  71. [A-Za-z]* 匹配所有单词

  1. 常用的g r e p选项
  2.  
  3. -c 输出匹配行的计数。
  4.  
  5. -i 不区分大小写(只适用于单字符)。
  6.  
  7. -h 查询文件不显示文件名。
  8.  
  9. -l 查询文件时只输出包含匹配字符的文件名。
  10.  
  11. -n 显示匹配行及行号。
  12.  
  13. -s 不显示不存在或无匹配文本的错误信息。
  14.  
  15. -v 显示不包含匹配文本的所有行。
  16.  
  17. 例子
  18.  
  19. grep -v "Sort" tab2 显示不包含匹配文本的所有行
  20.  
  21. grep -n "Sort" tab2 显示匹配行及行号
  22.  
  23. grep -c "Sort" tab2 输出匹配行的计数
  24.  
  25. 精确匹配: grep "01">" tab2
  26.  
  27. grep -in "code" tab2 忽略大小写
  28.  
  29. 多次过滤
  30.  
  31. grep -in "code" tab2 | grep "02"

猜你在找的正则表达式相关文章