正则表达式及基础命令(3)

来源:互联网 发布:小米快传传软件 编辑:程序博客网 时间:2024/05/16 11:07

正则表达式及基础命令(3

    grep 实现文本内容检索和过滤  grep类似的还有 egrep fgrepgrep主要是根据正则表达式检索文档。使用方法:

      grep [option]‘pattern’ filename    

    option选项:

        -b    在匹配上的每一行前加上所在块儿号。

        -i    比较式忽略大小写。

        -n    显示匹配到行在原文中的行数。

        -v    显示没有匹配到的行。

        -l    显示到匹配字符的文件。

        -A n  显示匹配到的字符后n行的内容

         -B n  显示匹配到的字符前n行的内容

        -C n  显示匹配到的字符前后各n行的内容

   ‘pattern’就是指正则表达式。   正则表达式包含一堆的元字符,

      正则表达式的使用:

        单词定位:

           ^  行首定位符。

           $  行尾定位符。

           mode/>  mode在行尾。

           /<mode  mode在行首。

           /<mode/> 在一行中仅有mode字符。

使用实例:grep ^mode /tmp/aa.txt。显示在/tmp/aa.txt中出现首字母为mode的行。

字符匹配

   .  匹配任意单个字符。

   [ab]  出现ab任意一个字符。

   [:alpha:]  bash中通配符一样,都表示任意一个字符。(同样适用于[:alnum:]等)

   /(ABC/) 然后/n 引用第n个小括号。 

grep匹配时贪婪模式,即尽可能长的匹配字符。eggrep ab.*   /tmp/aa.txt。在/tmp/aa.txt中有字符串abbbb,则会匹配到abbbb所有字符,而不仅是前面的ab

次数匹配:

   *  匹配0到任意次数。

   c/{m,n/} 表示c至少出现m次至多n次。

   c/{m,/} 表示c至少出现m次。

   c/{,n/} 表示c至多出现n

           c/{n/}  c出现n次。

颜色的显示:

   --color=auto 

 

扩展正则表达式多的几个命令

   次数匹配:

      +     个数1到任意多次。

          匹配01次。

      a|b   a或者bab|acabcaac。如想表示ab        ac则用(ab|ac

但同时扩展正则表达式不能使用 /{/}/(/)

  

   基础命令(3

cut文本的剪切

   eg cut d-f1,3 /etc/passwd 表示以:为分隔符,截取/etc/passwd中每一行的第一部分和第三部分。

   wc  做文件行数,字符数,字节数的统计。

      -w    单词统计

      -l    行数统计

      -c    字节数

      -m    字符数

sort  排序命令,只修改输出的内容,不修改源文件,默认排序是按照字符排序的,比如 1 2 前面,而不是按数值大小。

      -r    逆序排列

      -n    按数值大小排列

      -f    忽略大小写

      -u    忽略排序后重复的行

      -t    指定分隔符

      -k    指定字段。与-t一块儿使用,方法:sort t -k2  /etc/passwd 表示以冒号为分隔符,以第二段排序。

uniq 显示文件内不重复的行,注意:不重复的行必须相邻否则不能过滤,所以通常与sort连用。

diff 比较两个文件,而且产生补丁。

      diff filename1 filename2>test.pach

得到补丁文件test.pach然后再filename1上打补丁方法为:patch filename1 test.pach。取消上述补丁方法为:加上参数R 即:patch R filename1 test.pach

aspell  检查文件拼写

      aspell [option] <command> file

检查系统认为错误的内容,有很详细的操作说明。常在编程中使用。示例:aspell check test.txt

tr 删除命令。使用示例:echo redhat | tr d e 表示从redhat中删除e符号。

 

 

sed行编辑器

特点:

1.   没有破坏性

2.   不修改源文件

3.   sed支持shell脚本

           每次处理完一行之后在处理下一行,支持如vim中的       s///操作    egsed 1,3d a.txt 表示删除显示的13行。

                 sed/no/d a.txt 删除显示含有no的行

原创粉丝点击