zoukankan      html  css  js  c++  java
  • grep正则表达式

    grep的正则表达式(regexp)

    1、grep程序:

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

               grep:文本 行过滤工具

               Sed:文本 行生成器

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

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

               egrep =grep –E//使用文件通配符进行匹配

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

    grep的用法:

               grep[option]…PATTERN[filename]

    grep的常见选项:

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

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

               -i 忽略大小

               -v 进行反选

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

               --color=auto 语法着色

               -n 显示行号

               -w //匹配固定单词

    PATTERN—正则表达式:

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

    回顾:文件通配符(globbing): *? [ ] [ ^ ]

    1、字符匹配

               . 任意一个字符 ?

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

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

               [0-9] [:digit:][: alnum:][:alpha:][:lower:][:upper:][:space:][:punct:]

    2、次数匹配

               * 匹配前面的(紧挨着的)字符0次到n次

               ?匹配前面的字符0次到1次

               + 匹配前面的字符1次到n次

               {m} 匹配前面的字符m次   例:a{7}   aaaaaaa

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

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

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

    3、位置锚定 

               ^锚定行首

               $锚定行尾

                锚定词首和锚定词尾

               >锚定词尾

               <锚定词首   <root/>

    4、分组   

               Abc* abccc abc我们要看成一个整体

               ()示例:(abc)* abcabcabc abcccc

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

               例如:(+)

    ip地址: 0-255.0-255.0-255

               0-255

               2 0-4 0-9[0-4][0-9]

               2 5 0-5  25[0-5]

    练习:

    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}>

           [0-9]{2,3}

    -n 以数字进行排序.*任意字符

  • 相关阅读:
    tkinter 写一个简易的ide
    Vue+webpack项目配置便于维护的目录结构
    爬虫:输入网页之后爬取当前页面的图片和背景图片,最后打包成exe
    linux vue项目+npm run build + nginx
    Android 进阶自定义 ViewGroup 自定义布局
    Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了
    桶排序
    Test CMake run finished with errors
    搭建私人云盘
    Java中 / 和 %
  • 原文地址:https://www.cnblogs.com/wsq-qq/p/11350929.html
Copyright © 2011-2022 走看看