grep 命令

来源:互联网 发布:python reduce 函数 编辑:程序博客网 时间:2024/06/06 21:35

一、grep 命令的一般格式

        grep   [option]    pattern   file

        用于查找文件中字符串


二、grep option选项,如下图

        


三、pattern

        为正则表达式,正则表达式分为普通字符与特殊字符(元字符),元字符分为基本的元字符集和扩展元字符集

        1、基本的元字符集

      

       2、扩展元字符集

        

四、file

        可以是目录或者具体文件名,例如*.txt,.表示当前目录下,/etc表示etc目录下


五、举例

        grep ^public t1.txt                  在t1.txt中找到以public开始的行

        grep public$ t1.txt                  在t1.txt中找到以public结尾的行

        grep -n ^$ t1.txt                     在t1.txt中找到空行

        grep -n ^.$ t1.txt                    在t1.txt中找只包含一个字符的字符串

        grep -n \<public t1.txt            在t1.txt中找到以<public开始的字符串 ,传递给shell为\<public,传递给grep为<public

        grep -n ‘\<public’ t1.txt           在t1.txt中找到以public开始的字符串 

        grep -n ‘public\>’ t1.txt           在t1.txt中找到以public结尾的字符串

        grep -n “\\\\” t1.txt                  在t1.txt中找到包含\\的字符串

        grep -n ‘\\’ t1.txt                     在t1.txt中找到包含\\的字符串


        grep -E go+d t1.txt                      在t1.txt中找到包含go(一个或者多个o)d的字符串

        grep -En 10\{2,4\}A t1.txt             在t1.txt中找到包含1(2到4个0)A的字符串

        grep -En '11A|B' t1.txt                  在t1.txt中找到包含11(A或者B)的字符串

        grep -En net\(works\)* t1.txt         在t1.txt中找到包含net(0个或多个works)的字符串


        grep -rn telnet /etc                        在/etc目录下递归查找telnet

        grep -rni mSamples .                    在当前目录下递归查找mSamples

        grep -ni mSamples *.txt                在*.txt递归查找mSamples


六、说明

        grep -n ‘\\’ t1.txt  ‘ ‘ 传递给grep为\\

        grep -n  \\  t1.txt     传递给shell为\\,传递给grep为\

        grep -n "\\\\" t1.txt   ""此时会传递给shell为\\\\,传递给grep为\\ (比较特殊)

        grep -En 10\{2,4\}A t1.txt 或者 grep -En ‘10{2,4}A‘  t1.txt 传递给shell为10\{2,4\}A,传递给grep为10{2,4}A 

        r递归调用对于目录而言

        E对于patten 使用了扩展元字符集

        l 只列出包含字符串的文件

0 0
原创粉丝点击