文本搜索grep知识点总结

文本搜索工具:grep, egrep
    根据用户指定的模式对目标文件进行过滤,显示被模式匹配到的行
    grep [OPTION]... ‘PATTERN‘ FILE...
          --color
   
    难点在于模式如何书写,模式主要是应用正则表达式
    正则表达式:由一类字符书写的模式,其中有些字符不表示字符的字面意义,
                而是表示控制或者统配的功能
        元字符:*, ?等
        两类:
            基本正则表达式
            扩展正则表达式
       
    基本正则表达式:
        字符匹配:
            .: 匹配任意单个字符
                例如:grep --color ‘r..t‘ /etc/passwd
                        匹配到r开头,t结尾,中间间隔两个字符的行
           
            []:匹配指定集合中任意单个字符
                [[:digit:]],[0-9]
                [[:lower:]],[a-z]
                [[:upper:]],[A-Z]
                [[:alpha:]],[a-zA-Z]
                [[:alnum:]],[0-9a-zA-Z]
                [[:space:]]
                [[:punct:]]
                例如:grep --color ‘abcd[[:digit:]][[:digit:]][0-9]‘ test
                        匹配以abcd开头,后边跟三个数字的行
               
            [^]:匹配指定集合外的任意单个字符           
                    例如:grep --color ‘abcd[^[:digit:]]‘ test
                          grep --color ‘abcd[^0-9]‘ test
                            匹配以abcd开头,后边不是数字的行
       
        匹配次数:用于对其前面紧邻的字符所能够出现的次数作出限定
            *:匹配其前面的字符任意次,0,1或多次
                例如:grep ‘x*y‘
                        xy,xxy,xxxy,y
                   
            \?:匹配其前面的字符0次或1次,其中的\为转义字符,即转移?
                例如:grep ‘x\?y‘
                        xy,xxy,y,xxxy,aby 对于xxy而言,确实匹配到了xy,第一个x是被忽略的
           
            \+:匹配其前面的字符出现至少一次
                例如:grep ‘x\+y‘
                        xy,xxy,xxxy
           
            \{m\}:匹配前面字符m次
                例如:grep ‘x\{2\}y‘
                        xxy,xxxy
           
            \{m,n\}:匹配其前面字符至少出现m次,至多出现n次
                例如:grep ‘x\{2,4\}y‘
                        xxy, xxxy
                      grep ‘x\{2,\}y‘
                        xxy,xxxy
           
            .*:匹配任意长度的任意字符
       
        位置锚定:
            ^: 行首锚定
                写在模式的最左侧
                例如:grep --color ‘^abcd‘ /etc/passwd
                        匹配以abcd开头的行
               
            $: 行尾锚定
                写在模式的最右侧
                例如:grep --color ‘[0-9]$‘ /etc/passwd
                        匹配以数字结尾的行
               
            ^$:空白行
                例如:grep --color ‘^$‘ /etc/passwd
                        匹配空白行
           
            \<: 词首锚定, \b, \为转义字符
                出现在要查找的单词模式的左侧,\<char
                例如:grep --color ‘\<r‘ /etc/passwd
                        匹配以r开头的单词
               
            \>: 词尾锚定, \b,\为转义字符
                出现在要查找的单词模式的右侧,char\>
                例如:grep --color ‘tor\>‘ /etc/passwd
                        匹配以tor结尾的单词
               
            \<pattern\>:匹配单词
                例如:grep --color ‘\<root\>‘ /etc/passwd
                        匹配单词root
       
        分组:
            \(\)
            后向引用:模式中,如果使用\(\)实现了分组,在某行文本的检查中,
                    如果\(\)的模式匹配到了某内容,此内容后面的模式中可以被引用;
                \1,\2,\3
                模式自左向右,引用第#个左括号以及与其匹配右括号之间的模式匹配到的内容
               
            例如:grep --color ‘ab\{1,\}y‘ test
                    a与y之间至少一次b
                  grep --color ‘\(ab\)\{1,\}y‘ test
                    y之前至少一次ab
                  grep --color ‘\(ab\)\{1,\}y\1‘ test
                    y之前至少一次ab,且后边引用第一个分组
                  grep --color ‘\(ab\)\{1,\}y\2‘ test
                    y之前至少一次ab,且后边引用第二个分组
               
    grep选项:
        -v: 反向选取,即显示模式匹配之外的行
            例如:grep -v --color ‘abcd‘ test
                    显示abcd之外的行
        -o: 仅显示匹配到的内容
        -i: 忽略字符大小写
        -n: 匹配的同时显示行号
        -E: 使用扩展正则表达式
        -A #:匹配到的下边#行
            例如:grep -A 2 --color ‘abcd‘ test
                    显示匹配abcd的行及其下边两行,共三行
        -B #:匹配到的上边#行
        -C #:匹配到的上下边#行
   
    egrep及扩展的正则表达式
        扩展正则表达式的元字符
            字符匹配:
                .
                []
                [^]
               
            匹配次数限定:
                *
                ?: 匹配其前面字符0次或1次
                +:匹配其前面字符至少1次
                {m}:匹配其前面字符m次
                {m,n}:{m,},{0,n}
           
            锚定:
                ^
                $
                \<, \>: \b
           
            分组:
                ()
                支持后向引用:\1, \2...
           
            或者:
                a|b: a或者b
                ab|cd:
                例如: egrep --color ‘ab|c‘ test
                       grep --color ‘ab\|c‘ test
                        匹配含有ab或者c的行
                       grep --color ‘a\(b\|c\)‘ test
                        匹配含有ab或者ac的行
                       
        例如:grep -E ‘PATTERN‘ FILE...
              egrep ‘PATTERN‘ FILE...

时间: 2024-10-27 13:03:31

文本搜索grep知识点总结的相关文章

Linux下文本搜索-GREP篇

Grep应该是所有linux下开发人员天天都会使用的一个搜索工具,以其简单易用.功能强大赢大广大人们的喜爱,熟练使用Grep可以大大提高工具效率,下面总结一下本人在工作在使用上的一些技巧. 一.基本用法 grep [options] PATTERN [FILE...] 常见的options有几下几种: -a 以文本文件方式搜索 -c 显示满足PATTERN 的个数 -i  忽略大小写 -n 显示匹配的行号 -v 反向选择,即查找不满足PATTERN 的行 -b 显示搜索字符在匹配行出现的首位置

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 基础之文本搜索工具grep

一.grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep grep: 默认支持基本正则表达式: egrep: 扩展正则表达式: fgrep: 不支持正则表达式元字符,搜索字符串的速度快 二.通过man手册获取grep帮助信息: #man grep GREP(1)                     

文本搜索工具grep,egrep,fgrep的区别

一.grep 1.用途:文本搜索工具,根据用户指定的文本模式(patten)对目标文件进行逐行搜索,显示能够被模式匹配的行内容. 2.命令使用格式: grep [option] ' PATTEN 'files- 2.1 常用选项详解 2.1.1 单文件查找: -n:显示匹配行的行号(为了显示清楚匹配行,下面的都用n+其他选项) -v :反向匹配(即显示非匹配行) –> 常用于过滤掉一些无关的信息,增加显示信息的可读性. ※第一个[5]就是指第5行被匹配. -o:只显示行中被模式所匹配的字符串,而

grep文本搜索工具与正则表达式

一.文本搜索工具grep (一)grep简介 Linux上常用的三个文本处理工具被人们称为Linux文本处理三剑客,他们分别是: 1.grep(egrep,fgrep):文本搜索工具,基于"pattern"对给定的文本进行搜索操作. 2.sed:stream editor,流编辑器,行编辑工具,文本编辑工具. 3.awk:GNU awk,文本格式化工具,文本报告生成器. 他们都是很优秀的文本处理工具.现在,我就重点介绍下grep. grep:global search regular

Linux命令学习:grep文本搜索工具

Mark: 本系列博文只是记录作者在Linux学习过程中的点点滴滴,新手可能参考,高手们就略过吧!!! Linux学习总结:grep文本搜索工具 功能:根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,并把匹配的行打印出来,它的全称为"Global Regular Expression Print",全局正则表达式,它默认是开放给所有用户. 语法格式:Grep [option] pattern file Option:命令选项,具体包含: -v: --revert-match

整理grep实战文本搜索过滤技巧

一:grep的简介: 文本搜索工具,根据用户指定的文本模式对目标文件进行逐行搜索,显示能够被模式所匹配到的行.配合正则表达式的使用可以实现强大的文本处理.下面一一说明正则的例子. 二:文本处理工具分类 常用的有:grep,egrep,fgrep. 区别: grep:在没有参数的情况下,只输出符合RE(Regular Expression)字符. egrep:等同于grep -E,和grep最大的区别就是表现在转义符上比如grep 做次数匹配时\{n,m\}egrep则不需要直接{n,m}.egr

文本搜索之grep、egrep、egrep以及正则表达式

一.grep.egrep.fgrep命令 说明:本文在CentOS 6.6 X86_64系统下grep.egrep.fgrep命令和正则表达式的基本参数和使用格式.方法. 1.1.基本定义: grep(Global search Regular Expression ) and Print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它只能使用基本的正则表达式来搜索文本,并把匹配的行打印出来. grep是很常见也很常用的命令,它的主要功能是进行字符串数据

正则表达式和grep文本搜索工具

正则表达式和文本搜索工具介绍 正则表达式:如果想搜索/etc/passwd文件中以root开头的行,对与人来说很容易理解,但是对与计算机来说就无法理解,这个时候就需要使用正则表达式来表达过滤条件了,让用户实现对文本的智能搜索.正则表达式就是由元字符及正常字符所书写的模式,其中的元字符不表示字符本身的意义,而是用于表达控制或通配等功能. 正则表达式的特点是: 1. 灵活性.逻辑性和功能性非常的强: 2. 可以迅速地用极简单的方式达到字符串的复杂控制. grep:支持正则表达式,是一个文本搜索工具,