首页 > 代码库 > 文本过滤命令

文本过滤命令


文本编辑 




文本过滤

        grep  

                grep命令是Linux系统中的一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。








-------------------------


正则表达式分为两类

                基本正则表达式

                            ^        行首锚定符       grep "^bin" /etc/shells 

                            $        行尾锚定符        grep "bin$" /etc/shells

                            .        (点 号)任意单个字符 

                            *          匹配其前任意次(0,1,或多次)

                            []        匹配一组字符中的任一个

                            [x-y]    匹配指定范围内的一个字符

                            [^]       匹配不在指定范围内的字符

                            \          用来转移元字符 

                        wKiom1SAgJaxn0DfAAGB5SlAByA495.jpg

                扩展正则表达式









===================================================================

Linux 系统下  常见的文本编辑命令

                    sort   uniq   wc    cat    tr


sort      是Linux系统中非常常用的一个排序命令

        -u       删除重复行

        -r       降序排列(默认是升序)

        -o       把排序结果输出到原文件中

        -n     告诉sort 要以数值来排序

        -t       <分隔字符>   指定排序时所用的栏位分隔字符。
       -k        选择以哪个区间进行排序。

sort的-t选项和-k选项

如果有一个文件的内容是这样:

[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4

这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。

那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?

幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)

指定了间隔符之后,就可以用-k来指定列数了。

[rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3

我们使用冒号作为间隔符,并针对第二列来进行数值升序排序,结果很令人满意。

参考:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html



uniq     

        -c     在输出行前面加上每行在输入文件中出现的次数。

        -d     仅显示重复行。

        -u     仅显示不重复的行


wc

    命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出

命令参数:

-c 统计字节数。

-l 统计行数。

-m 统计字符数。这个标志不能与 -c 标志一起使用。

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

-L 打印最长行的长度。

-help 显示帮助信息

--version 显示版本信息







文本过滤命令