grep,egrep及正则表达式详解

1、定义:
   grep:文本搜索工具,根据用户的需要,使用正则表达式,搜索文本并显示匹配到的内容相对应的行。
   egrep:文本搜索工具,根据用户的需要,使用扩展正则表达式,搜索文本并显示匹配到的内容相对应的行。
   正则表达式:由元字符及正常字符组成,根据用户要求,来实现表达控制和通配等功能。
2、参数
    grep [-oviABCE] [PATTERN] [FILE]...
       --color=auto:设置匹配到的字符颜色变化
       -o:显示匹配到的行
       -v:显示不匹配到的行
       -i:不分字母大小写搜索
       -A #:显示匹配行外也显示被匹配行后的#行
       -B #:显示匹配行外也显示被匹配行前的#行
       -C #:显示匹配行外也显示被匹配行前后各#行
       -E:扩展正则表达式,等同于 egrep
    正则表达示元字符不同的模式:
       1.字符匹配:
          .:匹配任意单个字符
          []:匹配范围内的任意单个字符
          [^]:匹配范围外的任意单个字符
        2.次数匹配:
           *:匹配任意长度
           \?:匹配0次或1次
           \+:匹配至少1次
           \{m\}:匹配m次
           \{m,n\}:匹配至少m次,至多n次
        3.位置锚定:
           ^:锚定行首
           $:锚定行尾
        4.单词锚定:
            \<:锚定词首
            \>:锚定词尾
         5.分组:
            \(\) \1 \2...:分组模式
 3、例题:
     1、找出/etc/passwd文件中的一位数或两位数;

另一种方法:

2、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;

3、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
      

4、打出netstat -tan命令执行结果中含‘LISTEN’,后或跟空白字符结尾的行;

5、添加用户bash, ttbash, bashers, nologins (此一个用户的shell为/sbin/nologins),而后找出当前系统上其用户名和默认shell相同的用户的信息;

难点:易把[[:alnum:]]后跟* 这样就代表空字符也在内,并且要加词尾符,要不用户名和SHELL只要有一个 单词一样就会匹配。

时间: 2024-10-19 14:50:13

grep,egrep及正则表达式详解的相关文章

grep正则表达式详解及练习

grep正则表达式详解及练习 一.在学习grep正则表达式前,先了解下linux著名的文本处理三剑客: (1)grep.egrep.fgrep 文本搜索工具. (2)sed     文本编辑工具,一种流编辑器,行编辑工具. (3)awk 强大的文本分析工具,文本格式化工具,文本报告生成器. 以上三大命令均支持正则表达式,本文以grep正则表达式为例展开学习. 1.什么是正则表达式? 正则表达式(Regular Expression):由一类特殊字符及文本字符所编写的模式,其有些字符不表示其字面意

cut\grep\awk\sed命令详解

cut\grep\awk\sed命令详解 1.cut命令详解及实例 (1)作用:提取文件中指定的列 语法格式:cut  选项  文件名   (2)选项作用:      -d 分隔符     按照指定的分割符进行分割      -f 列号       指定提取第几列      -c 字符范围  不依赖分割符来分割,而是通过字符范围进行字段提取      -b 字节数     以字节为单位进行分割.    (3)cut实际应用案例. 例1:cut的-d和-f选项的使用,列出/etc/passwd里面

Shell编程之---正则表达式详解

正则表达式详解 普通字符:只是字面的意思 元字符:超过字面意思的意义 基本正则表达式元字符及其意义 * #0个或多个在*字符之前的那个普通字符 .               #匹配任意字符 ^         #匹配行首 $         #匹配行尾 $$ #执行上一条命令 !$ #上一条命令的最后一个参数,例如是/etc/passwd,继续对该参数操作,可以为 cat !$ []        #匹配字符集合 \          #转义符 \{n\}      #匹配前面字符出现n次 \

python正则表达式详解

python正则表达式详解 正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的.下面,我来介绍一下python中的正则表达式是怎么使用的. 首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用

PHP正则表达式详解(一)

前言: 半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时,发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程.于是一直想把他翻译过来. 本文是Jan Goyvaerts为RegexBuddy写的教程的译文,版权归原作者所有,欢迎转载.但是为了尊重原作者和译者的劳动,请注明出处!谢谢! 1.什么是正则表达式 基本说来,正则表达式是一种用来描述一定数量文本的模式.Regex代表Regular Express.本文将用

Java 正则表达式详解_正则表达式

body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;}

Linux 命令grep, egrep,正则表达式大全

Linux grep 命令     Linux系统中grep,egrep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. 1.grep : 最早的文本匹配程序,使用POSIX定义的基本正则表达式(BRE)来匹配文本. 2.egrep : 扩展式grep,其使用扩展式正规表达式(ERE)来匹配文本. 3.fgrep : 快速grep,这个版

JavaScript正则表达式详解(一)正则表达式入门

JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望对于大家学习JavaScript正则表达式有一定的帮助. 建立正则表达式对象语法 re = new RegExp(/pattern/[flags]) flags 参数说明: g (全文查找出现的所有 pattern) i (忽略大小写) m (多行查找) 普通字符 描述 \ 将下一个字符标记为一个特

grep的-A-B-选项详解(转)

grep的-A-B-选项详解(转)[@[email protected]] grep能找出带有关键字的行,但是工作中有时需要找出该行前后的行,下面是解释 1. grep -A1 keyword filename 找出filename中带有keyword的行,输出中除显示该行外,还显示之后的一行(After 1) 2. grep -B1 keyword filename 找出filename中带有keyword的行,输出中除显示该行外,还显示之前的一行(Before 1) 3. grep -1 k