首页 > 其他 > 详细

文件处理工具的浅析,grep,egrep.

时间:2014-02-18 12:57:42      阅读:431      评论:0      收藏:0      [点我收藏+]

 初学linux的文件处理工具中,分为了两类处理工具:

   一.取行,又称之为投影

      1.wc(word count) [options] PATH 可以看作是一个行统计工具

         -l:只显示行数;

         -w:只显示单词数;

         -c:只显示字节数;


      2.tr(translate):必须使用输入重定向.

         -d"字符集合",把出现在文件属于字符集合的字符统统删除。

bubuko.com,布布扣

      3.cut:文件切割,最常用的功能是能够使用指定的符号作为行的分隔符,将每一行切片,而只取出某些片.

        cut [options] PATH

             -d:分隔符,默认的分隔符是空格.

             -f:取第几个分隔符.

bubuko.com,布布扣

bubuko.com,布布扣



   二.取列,也称之为选择;

     grep:Global search Regular Expression and Printing.

      既然要学习如何使用正则表达式来进行条件选择,那么首先要从元字符开始。

元字符:不表示字符本身的意义,而用于额外功能性描述的字符.

      对于基本的正则表达式和扩展的正则表达式还是有少许的不同点:


      1.基本的正则表达式;贪婪模式(尽可能长的去匹配符合模式的内容)

        grep [options] "PATTERN" PATH  所谓的PATTERN就是我们用正则表达式来做的条件。

        [options]:

            -v:条件取反;

                e.g#grep -v "^$" /etc/rc.d/rc.sysinit

                    显示这个文件里面的非空行.

bubuko.com,布布扣


            -o:只显示匹配的字符,而不是整行;

bubuko.com,布布扣


            -A:显示匹配到的行时,顺带显示其后面的#个行;


            -B:显示匹配到的行时,顺带显示其前面的#个行;


            -C:前后的#行;

bubuko.com,布布扣

            -i:不区分大小写;


            -r:递归查找;


            -E:使用扩展的正则表达式

         元字符:(里面引用一些管道的概念,也就是头一次的输出即为第二个的输入)

^STRING:锚定行首符合条件的内容;

bubuko.com,布布扣

从这里可以得知所谓的管道在这里就是将grep执行后的结果传給wc.


          STRING$:锚定行尾符合条件的内容;

bubuko.com,布布扣


^$:锚定空白字符自成一行的内容

bubuko.com,布布扣

\<:锚定词首;

\>:锚定词尾;


\<Pattern\>:锚定单词


\(Pattern\):(分组)当作一个整体去匹配

                   e.g#grep "\(ab\)\{1,3\}" PATH

                       以ab作为整体出现1~3次.

bubuko.com,布布扣

                   要求后面的l..e要等于前面的l..e

                   记为:grep "\(l..e\).*\1"


.:匹配任意单个字符;


*:匹配其前面的字符任意次;


.*:匹配任意长度的任意字符;


[]:匹配指定范围内的任意字符;


? :匹配在其前面的字符0~1次;


\{m,n\}匹配其前面的字符最少m次,最大n次;

                such: \{3,\}匹配其前面最少三次,

                      \{m\}:精确匹配m次.

                      grep "[Bb]\{2,5\}[Tt]" :匹配前面是B或者t开头的2~5次,并且后跟t;

[^]:匹配指定范围外的任意字符;

              字符集合:

                  [a-z],[0-9],[A-Z]

                  [a-zA-Z0-9]

                  [:digit:]:0-9

                  [:upper:]:A-Z

                  [:lower:]:a-z

                  [:punct:]:符号

                  [:space:]:空格

                  [:alpha:]:大小写字符

                  [:alnum:]:大小写数字

      2.扩展的正则表达式;Egrep = grep -e

+:匹配其前面字符至少一次;


.:任意单个字符;


[]:匹配指定范围内的单个字符;


[^]:匹配指定范围外的单个字符;


:匹配任意字符0~1次;


^ :锚定行首;


$ :锚定行尾;


\<:匹配词首;


\>:匹配词尾;


():匹配整体; 区别于基本的正则表达式


\{m,n\}:最少m次,最多n次;


a|b:a或者b,二选一


such:

          在/proc/meminfo文件里面找到以s或者S为行首的地方.

          我们需要把s|S看作是一个整体,所以要用上括号,

          否则就是认为是(^s)|S的意义了。

bubuko.com,布布扣

           在 grep.txt这个文件里面找到以a开头,但是a至少出现1一次以上,后面跟上b的串。

bubuko.com,布布扣



本文出自 “Lemon的博客” 博客,请务必保留此出处http://jasonming.blog.51cto.com/2668994/1359885

文件处理工具的浅析,grep,egrep.

原文:http://jasonming.blog.51cto.com/2668994/1359885

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!