SHELL脚本之常用文本处理命令②正则表达式


定义:RegExp(Regular Expression),由普通字符和元字符组成的一种用来描述字符串的匹配的模式(pattern)

1 元字符(基本&扩展&perl)

1.1 基础元字符

  • .:匹配单个任意字符
  • |:(扩展),或,选择功能

1.2 次数

  • *:前一个字符出现任意次
  • ?:(扩展),前一个字符出现 ≤ 1次
  • +:(扩展),前一个字符出现 ≥ 1次
    • {n,m}:(扩展),前一个字符出现n到m次
      • {5,}:≥ 5次
      • {,5}:≤ 5次
      • {5,5}:= 5次

1.3 位置锚定

  • ^:开头
  • $:结尾
  • ^$:开头和结尾里没内容,表示空白行

1.4 “单词”边界

  • \<:“单词”左边界
  • \>:“单词”右边界
  • \b:“单词”左右边界,一次用两个
    • echo "the there they" | grep "\bthe\b":匹配 the

1.5 分组

  • ():(扩展),将某些字符作为一个整体
    • 分组后可以在后面引用分组
    • grep -E "^(.).*\1$" test:匹配开头字符和结尾字符相同的行

1.6 字符组

  • []:匹配字符组中的任意一个字符
    • [abc]
    • [0-9]
    • [a-z]
    • [A-Z]
    • [a-zA-Z]
    • [:upper:]:相当于[A-Z]
    • [:lower:]:相当于[a-z]
    • [:alnum:]:匹配数字、大小写字母及下划线
    • [:alpha:]:只匹配大小写字母
    • [:digit:]:只匹配数字
  • PERL支持
    • \d:相当于[0-9]
    • \D:除了[0-9]
    • \s:空白符,如空格、制表符等
    • \S:除了空白符
    • \w:数字、大小写字母及下划线
    • \W:除了数字、大小写字母及下划线

2 grep

使用正则表达式匹配符合条件的字符串

  • 语法:grep [options] ‘PATTERM’ FILE’
选项 作用
-E 支持扩展正则表达式
-P 支持PERL正则表达式(也支持扩展)
-n 显示行号
-i ignorecase,忽略大小写
-o match-only,只输出匹配到的内容
-v invert,反向匹配
-A N after,输出匹配到的行和后N行
-B N before,输出匹配到的行和前N行
-C N both,输出匹配到的行和前后N行
发布了67 篇原创文章 · 获赞 2 · 访问量 1387

猜你喜欢

转载自blog.csdn.net/weixin_42511320/article/details/104999101