Shell脚本正则表达式

Shell正则表达式

  • 正则表达式
    • 正则表达式的用途
    • 正则表达式的分类
  • 基础正则表达式
    • 基础正则表达式元字符
    • grep
      • 用法示例
    • sed
      • 用法示例
  • 扩展正则表达式
    • 扩展元字符
    • egrep
      • 用法示例
    • awk
      • 用法示例
    • sort
    • uniq
    • tr

正则表达式

是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,简单来说,是一种匹配字符串的方法,通过一些特殊符号,实现快速查找、删除、替换某个特定字符串。正则表达式是由普通字符与元字符组成的文字模式。

正则表达式的用途

正在表达式对于系统管理员来说是非常重要的,系统运行过程中会产生大量的信息,这些信息有些事非常重要的,有些则只是告知的信息,身为系统管理员如果直接看这么多的信息数据,无法快速定位到重要的信息,如“用户登录失败”等信息,这是可以通过正则表达式快速提取有问题的信息,如此一来,可以将运维工作变得更佳简单、方便。

正则表达式的分类

正则表达式的字符串表达方法根据不同的严谨程度与功能分为基本正则表达式与扩展正则表达式,基础正则表达式是常用正则表达式最基础的部分,再Linux系统中常见的文件处理工具中grep与sed支持基础正则表达式,而egrep与awk支持扩展正则表达式。

基础正则表达式

基础正则表达式元字符

^ :匹配输入字符串的开始位置。除非在方括号表达式中使用,代表不包含该字符集合。要匹配“^”字符本身,请使用“\”

$ :匹配输入字符串的结尾位置。如果设置了RegExp(正则表达式)对象的Multiline(多个)属性,则“$”也匹配‘\n’或‘\r’(换行)。
要匹配"$"字符本身,请使用“\$”

.:匹配除了“\n\r”之外的任何单个的字符

\:反斜杠,又叫转义字符,去除其紧跟的元字符或通配符的特殊意义。

*:匹配前面的子表达式零次或多次。要匹配“*”字符,请使用“\*[]:字符集合。匹配所包含的任意一个字符。例如,“[abc” 可以匹配“plain” 中的“a”

[^ ]:赋值字符集合。匹配未包含的一个任意字符。例如,“[^abc]”可以匹配“plain”中任何一个字母

[n1-n2]: 字符范围。匹配指定范围内的任意一个字符。例如,“[a-z]” 可以匹配“a”到“z”范围内的任意一个小写字母字符。

注意:只有连字符(-)在字符组内部,并且出现在两个字符之间时,才能表示子符的范围;如果出现在字符组的开头,则只能表示连字符本身

{
   n}: n是一个非负整数,匹配确定的n次。例如,“o{
   2}"不能匹配“Bob” 中的“o”,但是能匹配“food”中的“oo”

{
   n,}: n是一个非负整数,至少匹配n次。例如,“o{
   2,}”不能匹配“Bob” 中的“o”,但能匹配“fooood”中的所有o。

“o{
   1,}”等价于“o+”(至少出现1次)。“o{
   0,

你可能感兴趣的:(linux,shell,正则表达式)