shell下正则表达式与其工具grep

一.grep相关知识

1.grep

     grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

2.grep工作原理

     grep有两种模式:Basic和Extend模式。

    在Basic模式下,命令直接grep ,其中的?、+、{}、|、()都被解释为普通字符,如果要使用其的特殊意义,就必须对其用转义字符进行转义。

    在Extend模式下,命令grep-E,其中的?、+、{}、|、()都是特殊字符,要匹配时必须用转义字符将其转义,变为普通字符。

    grep命令在一个或多个文件中查找某个字符模式,如果这个模式中包含空格,就必须用引号把它括起来。grep命令中,模式可以是一个被引号括起来的字符串,也可以是单个词。位于模式之后的所有单词都被视为文件名。grep将输出发送到屏幕,它不会对输入文件进行任何修改或变化。grep返回的退出状态为0,表示成功。退出状态为1,表示没有找到。如果找不到指定的文件,退出状态为2。

3.grep工具选项

  常用的grep选项:

   grep-i:匹配时忽略字母大小写

   grep-n:列出所有匹配的文本行,并显示行号

   grep-v:只显示不匹配的文本行

   grep-w:匹配整个单词

   grep-x:匹配整个文本行

   grep-c:只打印匹配的文本行的行数,不显示匹配内容

不常用的选项:

   grep-l:只列出含有匹配的文本行的文件的文件名,不显示匹配内容

   grep-h:搜索多个文件时,不显示匹配文件名前缀

   grep-s:不显示关于不存在或者无法读取文件的错误

   grep-r:递归搜索,不仅搜索当前目录,还搜索各级子目录

   grep-q:禁止输出任何匹配结果,而是以退出码状态的形式表示是否匹配成功,其中0表示找到了匹配的文本行

   grep-P:支持Perl正则表达式

   grep-F:不支持正则表达式,将模式按字面意义进行匹配

   grep-b:打印匹配的文本行到文件投的偏移量,以字节为单位

二.正则表达式

   1.正则表达式:简单来说就是通过描述某种规则,用这种规则去匹配信息。正则表达式一般要用单引号括起来

      正则表达式的三要素:数量限定符、位置限定符和字符类

   2.三要素

     1>字符类:描述匹配字符信息

     2>数量限定符:用来描述匹配字符数量

        其中?、+、*这三个较为重要

     3>用来描述匹配字符位置信息

 三.正则表达式结合grep工具的具体例子

    1.数量限定符例子(常用的)

       1>使用? 前导单元出现0次或一次

        

       2>使用+   前导单元出现1次或多次

        

       3>使用*  紧跟前面的单元出现0次或多次

       

    2.字符类的例子(常用的)

       1>使用 . 匹配任意一个字符

         

       2>使用[] 匹配括号里任意一个字符

         

       3>使用^  匹配除中括号内的任意一个字符 

            

   3.位置限定符的例子 (常用的)

       以file文件里内容为例

        

      1>^ 匹配行首位置

           以hel开头的行

         

         

      2>$ 匹配行末位置 

           以t结尾的行

         

4.混合起来复杂的运用

    file文件里存信息

   

   1>去粗略匹配一个ip地址 

     用命令匹配 

      

    

    

       

    

 

         


           

  


				
时间: 2024-10-10 10:01:40

shell下正则表达式与其工具grep的相关文章

Linux下文本搜索工具grep命令使用入门

grep命令入门 如果想通过使用grep命令来实现理想化的文本搜索,对正则表达式的了解是比不可少的.文献1对正则表达式语法做了一个简单的介绍,文献2提供了一个简单的入门.码农也可以自己google一下其他的参考资料.下面就grep命令的使用做个入门级的介绍. 1.1 grep命令的变种 linux下除了grep命令可以完成文本搜索外,还存在egrep,fgrep,rgrep三个命令.这三个命令都是由grep加上一些控制参数演变而来,如egrep=grep -E, fgrep=grep -F, r

linux下C++开发工具

就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样.Emacs, vi, eclipse, anjuta,kdevelop等层出不穷.Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户.例如,VS2005集成了编辑器,宏汇编ml,C /C++编译器cl,资源编译器rc,调试器,文档生成工具, nmake.它们以集成方式提供给最终用户,对于初学者而言十分方便.但是,这种商业模式,直接导致用户

linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)

本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www.cnblogs.com/chengmo/archive/2010/10/21/1856577.html以此为例: cat test.sh test1.sh 2>/dev/null | grep -n 'echo' 此时若test.sh 不存在,报错信息不会输出到屏幕中,而是转入 /dev/null中,如

Linux基础之文本处理工具grep及正则表达式(附带egrep与grep的不同)

文本处理工具grep,正则表达式在Linux学习过程中很容易出现困惑与障碍的地方,这里分享下学习这方面内容的一些感受. grep Global search REgular expression and Print out the line 作用:文本搜索工具,根据用户指定的'模式(过滤条件)'对目标文本逐行进行匹配检查:打印匹配到的行: '模式':由正则表达式的元字符及文本字符所编写出的过滤条件. grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS]

正则表达式及工具程序grep,egrep

写在前面: 如果此文有幸被某位朋友看见并发现有错的地方,希望批评指正.如有不明白的地方,愿可一起探讨. 什么是正则表达式?     见名知意,正则表达式也就是符合某种规则的表达式,它是由特殊字符和其他字符组成的字符串.要想以正则表达式的规则来处理字符串,就得需要使用支持正则表达式的工具程序(有时也被称为正则表达式引擎)才行,例如grep,egrep,vi,sed,awk等,用来从/boot/grub/grub.conf文件中提取结果的命令如下图所示. 基础正则表达式之工具程序grep     元

使用正则表达式配合文本搜索工具Grep以及Egrep快速搜索文本

正则表达式: 计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 正则表达式由两类组成: 基本正则表达式与扩展正则表达式 基本正则表达式: 字符匹配 .:匹配单个字符 []:匹配指定集合中的任意单个字符 [:digit:]:所有数字(0-9) [:lower:]:所有小写字母(a-z) [:upper:]:所有大写字母(A-Z) [:space:]:空白符 [:punct:]:特殊字

Shell下的正则表达式

一.正则表达式简述 ·概念:用一串字符,描述有共同属性的数据 ·注意:使用正则表达式匹配时,一定要注意 \ 转移符号的使用 ·格式: a.    grep [选项]  '正则表达式'  文件列表1 文件列表2 b.    | 管道命令 ·处理方式 a.以行为处理单位 b.默认输出与正则表达式匹配的行刀屏幕上 c.对数据进行逐行处理,处理完当前行,自动处理下一行,直到结束 ·选项 → --color    高亮显示匹配的数据 → -q         不显示匹配的结果 → -c         统

Linux的文本处理工具grep及初识正则表达式

一).Linux的三大文本处理之GREP: GREP(Global search REgular expression and Print out the line,全面搜索正则表达式并把行打印出来):在给出文件列表或标准输出后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本.----摘自于维基百科 GREP家族包括: grep: egrep:支持扩展正则表达式的grep,等同于grep -E. fgrep:fixed grep或fast grep,不支

详解正则表达式以及文本处理工具—grep、egrep的用法和特性

一.grep (1)grep简介 grep:全称是Global search REgular expression and Print out the line,全局搜索正则表达式并输出合适的行. grep是一种强大的文本搜索工具,根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行.(只对文本进行搜索处理) Unix的grep家族包含grep.egrep和fgrep. (2)grep的用法 语法格式:grep [option]... 'PATTERN' FILE... 选