14、自学——Linux的学习进度与任务【正则表达式】

正则表达式

文本处理工具之grep、egrep和fgrep

1、基本正则表达式

      grep:(global search regular expression(RE)and print out the line)
      文本搜索工具,根据用户指定的文本模式对目标文件进行逐行搜索,并显示匹配的行

        # grep [options] ‘PATTERF(模式)‘ file,默认只支持基本正则表达式,要匹配额外功能的字符用-E
            --color=auto 指定颜色
            -v:反向匹配,显示不能被模式匹配到的行
            -o:仅匹配被模式匹配到的字串,而非整行
            -i:不区分大小写,ignore-case
            -E:支持扩展
            -A #:还显示模式下面的一行
            -B #:还显示模式上面的一行
            -C #:前后各显示一行

    正则表达式:是一类字符所书写出的模式(pattern)
    元字符:类似通配符,不表示字符本身的意义,用于额外功能性的描述

    基本正则表达式的元字符:

        字符匹配:
            .:任意单个字符
            []:指定范围内的任意单个字符
                [0-9],[[:digit:]]
                [a-z],[[:lower:]]
                [A-Z],[[:upper:]]
                所有的字母:[[:alpha:]]
                字母+数字:[[:alnum:]]
                空格:[[:space:]]
                标点符号:[[:putct:]]
            [^]: 指定范围外的任意单个字符

        次数匹配:用来指定匹配其前面的字符的次数
            *:任意次
              例子:x*y xxy xy y 都能匹配
              .*:匹配任意长度的任意字符
            \?:前面字符出现0次或者1次的
            \{m\}:匹配前面的字符m次
            \{m,n\}:至少m次,至多n次
            \{m,\}:至少m次
            \{0,n}:至多n次
            做变量换算需要使用”“

        贪婪模式:尽可能的长的去匹配字符:

        位置锚定:用于指定字符出现的位置
            ^:锚定行首
              ^Char
            $:锚定行尾
              grepchar$
            ^$:空白行

        单词的位置锚定:

            \<char :锚定词首,\bchar
            char\> : 锚定词尾,char\b

        分组:
            \(\)
              \(ab\)*xy

        引用:
            \1:后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式匹配到的内容,意思是说前面出现一次,在\1这也要出现一次
            \2
            ...
                \(a.b)xy\1: a6bxya6b

2、扩展正则表达式

    egrep:使用扩展正则表达式来构建模式,相当于 grep -E
      元字符:
        字符匹配:
            .:任意单个字符
             []:指定范围内的任意单个字符
            [^]:指定范围外的任意单个字符

      次数匹配:
            *:匹配器前面的字符任意次
            ?:匹配器前面的字符0或1次
            +:匹配其前面字符至少一次
           {m}:匹配其前面字符m次
           {m,n}:至少m次,至多n次
           {m,}:至少m次
           {0,n}:至多n次

         位置锚定:用于指定字符出现的位置
          ^:锚定行首
            ^Char
          $:锚定行尾
            grepchar$
          ^$:空白行

        单词的位置锚定:
          \<char :锚定词首,\bchar
          char\> : 锚定词尾,char\b

       分组:
          ():分组
           |:或者,ac|bc ac或者bc

   fgrep:不解析正则表达式

时间: 2024-10-13 15:31:59

14、自学——Linux的学习进度与任务【正则表达式】的相关文章

1、自学——Linux的学习进度与任务【时间日期管理类的命令】

时间日期管理类的命令 时间日期管理类的命令:  # date :显示 # date MMDDhhmm[CC]YY.ss :设定 # date [+FORMAT] %Y:4位年份 %y:  2位年份 %M:  分 %m:月 %d:  日 %H:  时 %S:  秒 %T: 时间(以冒号隔开) %D:日期 %F: 日期(以横杆隔开) unix元年:1970-01-01 00:00:00 %s:timestamp:从unix元年开始到此刻所经历的秒数 # cal   :    显示日历 # cal #

2、自学——Linux的学习进度与任务【获取命令的使用帮助】

获取命令的使用帮助   1.命令的格式: command options argumets 命令  选项 参数 选项:调整命令的执行特性的 选项可以有多个:多个选项之间必须以空格分隔 短选项:-char(字符) 长选项:--word(单词) 短选项可以合并:长选项一般不可以合并 有些选项需要有参数: 命令参数:命令的作用对象 有些命令可以带多个参数:各参数键需要使用空格分隔: 2.出现乱码的对策: # export LANG(语言)= en (导出环境变量) 3.获取命令的使用帮助: 1]内置命

16、自学——Linux的学习进度与任务【vim编辑器及文件测试】

vim编辑器及文件测试 vim编辑器 在Linux中,使用文本文件来保存配置文件 1.几种基本的模式: 编辑模式:键盘操作通常被解析为编辑命令: 输入模式:输入模式 末行模式:vim的内置的命令行接口,执行vim内置命令 2.模式之间的切换: 编辑模式-->输入模式(从编辑模式进入到输入模式) i:当前光标所在处输入内容 I: 在当前光标所在行的行首 a:在当前光标所在处的后面 A:在当前光标所在行的行尾输入 o:在光标所在行的下方新增一行空白行输入 O:在光标所在行的上方新增一行空白行输入 输

11、自学——Linux的学习进度与任务【文件系统文件权限】

文件系统文件权限 文件系统文件权限: 三类用户:  属主:owner, u  属组:group, g  其它:other, o  所有:All,a 权限: r: readable,可读 w: writable, 可写 x:excutable, 可执行 权限管理: 文件:  r:可以使用内容查看类的命令来显示其相关内容  w:可以使用编辑器修改其内容 x:可以将其发起一个进程 目录: r:可以使用ls命令查看目录内容的文件信息   w:可以创建.删除文件   x:可以使用ls -l 命令查看目录内

5、自学——Linux的学习进度与任务【shell中bash的特性】

shell中bash的特性 shell中bash的特性 bash特性之一:命令行展开   把命令行的给定的一个特殊符号自动替换为别的字符串的机制 目录: 命令:cd [内置命令] 工作目录:当前所处的目录 cd:change directory(切换目录) cd 目标路径(不能是一个文件必须是一个目录) 所有从根起始的都是绝对路径:/文件名 基名:路径最后一个文件的名字  /x/y/z/m/n: 目标路径  /x/y/z/m: 是目录名或者路径名   两个命令: 获取路径的基名:   # bas

10、自学——Linux的学习进度与任务【用户和用户组相关操作】

用户和用户组相关操作 用户和用户组定义: 用户:资源获取标识符(资源分配),是安全权限模型的可信要素之一 用户组:用户组是指多个用户的集合,方便对一类需要同样权限的用户授权   密码:用户认证  Linux是多用户.多任务的操作系统.  多用户指:多人同时使用系统资源:多任务:同时运行多个进程 用户和用户组的类别: 1.用户:名称解析库 /etc/passwd a.管理员 root 用户标识(UID)为0 b.普通用户及系统用户  普通用户的用户标识(既UID):   CentOS 5,6: 5

13、自学——Linux的学习进度与任务【位置参数、交互式脚本】

位置参数.交互式脚本 知识点1: bash的单步执行(显示整个执行过程): bash -x /path/to/script(脚本) 知识点2: 位置参数:  /tmp/test.sh(脚本自身) 3(脚本的第一个参数) $0:脚本自身 $1:脚本的第一个参数 $2: .... 特殊变量:  $#:显示所有位置参数的个数  $*,[email protected]:显示引用所有的位置参数 知识点3: 交互式脚本: read 变量:给定变量数值,可以为空 read -p :提示信息 给变量以默认值:

12、自学——Linux的学习进度与任务【bash的配置文件】

bash的配置文件 bash的配置文件: 持久保存用户配置 profile类:为交互式登录的用户提供配置 /etc/profile 全局 /etc/profile.d/*.sh 全局 ~/.bash_profile 个人配置,仅对当前用户有效 功能: 设定环境变量 用来实现运行命令或者脚本 如何读取配置文件: /etc/profile -->/etc/profile.d/*.sh -->~/.bash_profile-->~/.bashrc -->/etc/bashrc bashr

6、自学——Linux的学习进度与任务【FHS】

FHS:文件层次标准 FHS:文件层次标准    / :   代表根目录 /bin:   二进制文件,可执行程序,所有用户都能用. /sbin:  只有管理员执行的,二进制可执行程序. 启动就用得到,提供自身运行.    /usr/bin:      完成具体的工作  /usr/sbin:     完成具体的工作  /usr/local/bin:     用于安装第3方程序.    /usr/local/sbin:     用于安装第3方程序. /boot:   存储系统引导文件,有内核,ran