Linux 系统的通配符与正则表达式

        事实上,Linux 系统的通配符 (wildcard) 与正则表达式有很大的差别。在《鸟哥的私房菜》12 章中,鸟哥就特别强调,正则表达式 与 通配符是完全不一样的东西。因为 通配符 代表的是 bash 接口的一个功能,用与 linux shell 命令中(如文件名相关操作),而 正则表达式 则是一种字符串处理的表示方法,用于文本内容中的字符串搜索和替换等。通配符是 Linux系统本身救支持的,而正则表达式用于 vim 编辑器或 awk 程序,这些文本工具就是由于支持 正则表达式 才变得如此强大。

    1、通配符

        [ a - z ] 或 [12] :匹配方括号中指定范围内的单个字符或方括号列出的其中一个字符

        [ !9 ]  :不匹配方括号中所列字符或指定范围内的单个字符

         * : 匹配 0 个字符或多个字符

         ?:匹配任何单个字符,且不能为空字符。

    由于 shell 会将字符 ? [ ]  * 区别对待,因此在命令参数时如果需要用到这几个特殊字符,应将该参数用单引号标注或通过在特殊字符前加转义字符 \。

      2、正则表达式

          ^word : 待查找的字符串(word)在行首

          word$ : 待查找的字符串(word)在行尾

              .         :代表一定有一个任意字符的字符

             \         : 转义字符,将特殊符号的特殊意义去掉

             *         : 重复零个到无穷多的前一个字符

          [ list ]    :从字符集合的 RE 字符里面找出想要选取的字符

         [ n1 -- n2 ]  :从字符集合的 RE 字符里面找出想要选取的字符范围

         [ ^list ]     : 从字符集合的 RE 字符里面找出不要的字符串或范围

         \{ n , m \} : 连续 n 到 m 个的前一个 RE 字符

       以上为基础正则表达式字符,下面为扩展正则表达式字符:

             +           : 重复一个或一个以上的前一个 RE 字符

              ?         : 零个或一个的前一个 RE 字符

               |            : 用或(OR) 的方式找出数个字符串

              ()      : 找出“组”字符串

            ()+     :  多个重复组的判别


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux命令中,正则表达式是一种强大的工具,用于在文本中进行模式匹配和搜索。正则表达式可以应用于各种命令(如grep、sed、awk等),以及编辑器(如vim)和服务器(如nginx)等。正则表达式由字母、数字和特殊符号组成,按照一定的规则来表达某种含义。 在Linux命令中,常见的正则表达式符号包括: 1. . (点号):匹配任意一个字符。 2. * (星号):匹配前一个字符的零个或多个出现。 3. + (加号):匹配前一个字符的一次或多次出现。 4. ? (问号):匹配前一个字符的零次或一次出现。 5. [] (方括号):用于定义字符集,匹配方括号中任意一个字符。 6. ^ (脱字符):匹配行的开始位置。 7. $ (美元符号):匹配行的结束位置。 8. \ (反斜杠):用于转义特殊字符。 举个例子,如果你想在一个文件中查找所有以"hello"开头的行,你可以使用grep命令结合正则表达式进行匹配。命令如下: grep "^hello" filename 其中,^表示行的开始位置,"hello"表示要匹配的字符串。这个命令会输出所有以"hello"开头的行。 另外,正则表达式还支持更复杂的模式匹配,比如通配符、字符类、重复选项等。你可以根据具体的需求,结合正则表达式的语法规则,来构建适合你的匹配模式。 综上所述,正则表达式Linux命令中是一个非常有用的工具,可以帮助你快速准确地进行文本搜索和模式匹配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值