• Xshell学习第四课:grep与正则表达式


    1、-grep程序

    Linux下有文本处理三剑客-------grep sed awk’

    -grep:文本行过滤工具

    -sed :文本行编辑器(流编辑器)

    -awk :报告生成器,(作文本输出格式化)

    -grep包含三个命令:grep  egrep   fgrep,他们用来进行 行模式(pattern)匹配的

                        --egrep= grep -E  //使用扩展的正则表达式进行匹配

                        --fgrep = fast grep  //只使用文件通配符进行匹配

                        *--grep 默认使用正则表达式进行文本匹配*

    --grep的用法:grep [option] … PATTERN 文件名

    --grep的常见选项:option

                     -E  支持使用扩展的正则表达式(ERE)regexp

                     -P  使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed grep awk使用的正则表达式也不相同)

                     -I 忽略大小写

                     -v 进行反选

                     -o 仅仅输出匹配的内容(默认输出的是匹配到的行)

                     --color=auto 语法着色

                     -n 显示行号

                     -w 匹配固定单词

    PATTERN—正则表达式

              作用:通过一些特殊的字符,来表示一类字符的文件内容,然后交给前面的命令来执行;如果使用特殊字符本身的含义,就需要进行转义

     文件通配符:

               *?[] [^]

    1. 字符匹配

    . 代表任意一个字符 ?

    [] 匹配范围内的任意一个字符

    [^] 范围外任意一个字符

    字符类

    1. 次数匹配

    * 匹配前面的字符,零次到多次

    * = ?+    ? :匹配前面的字符零次到一次

    + 匹配前面的字符一次到多次

    {m}匹配前面的字符m次

    {m,n} 匹配前面的字符m到n次

    {m,}匹配前面的字符至少m次

    1. 位置锚钉

    ^ 锚定行首

    $ 锚定行尾

     锚定词首和词尾 == > 锚定词尾  < 锚定词首

    <root>锚定单个单词

    1. 分组

    --abc* abcccccccc abc我们看成一个整体

    () 实例: (abc) abcadascas abccc

    **分组特性:默认情况下,Linux系统会为分组指定变量,变量的表示形式123….

    练习:

    1. 显示/proc/meminfo文件中大小写S开头的行;

    --grep -I “^s” /proc/meminfo

         2. 显示/etc/passwd文件中不以/bin/bash结尾的

            --grep -v “/bin/bash$” /etc/passwd

         3.显示/etc/passwd文件中UID号中最大的用户的用户名

            --sort -n -t:-k3 /etc/passwd | tail -1 | cut -d:-f1

         4.如果用户root存在,显示其默认的shell程序

            --grep “^root>” /etc/passwd &> /dev/null && grep “^root>” /etc/passwd | cut -d: -f7

            --id root &> /dev/null && grep “^root>” /etc/passwd | cut -d: -f7

         5.找出/etc/passwd中的俩位或者三位数

            --grep “[0-9]{2,3}” /etc/passwd

              -w

              <[0-9]{2,3}>

    6.显示/etc/rc.d/rc/sysinit文件中,至少以一个空白字符开头的且后面为非空白字符的行

    --grep “^[[:space:]]+.* [^[:space:]]$” /etc/rc.d/rc/sysinit

        7.找出“netstat -tan” 命令的结果中,以“LISTEN”后跟0,1

  • 相关阅读:
    MyBatis配置项--配置环境(environments)--数据源(dataSource)
    MyBatis配置项--配置环境(environments)--数据源(dataSource)
    开发AI+诊疗生发系统,「先锋汇美」借力人工智能辅助诊疗实现头皮医学检测...
    Node.js简述
    Node.js简述
    解决跨域问题代码示例
    解决跨域问题代码示例
    javaScript常用到的方法
    javaScript常用到的方法
    接口自动化测试平台-接入持续集成jenkins
  • 原文地址:https://www.cnblogs.com/huangchuan/p/11354774.html
Copyright © 2020-2023  润新知