1.wc

   统计文件中的行数、单词(用空格分开的字符串)数、字节数

    1)wc [options] filename

            -l:显示行数

            -c:显示字节数

            -w:显示字/单词 数

            -m:显示字符数

            -L:显示最长行的长度

    2)wc      

        输入多行内容,以 “ctr + d”结束,返回统计结果

 2.tr

    tr [字符集1] [字符集2]

    字符格式转换或删除.

    在传过来的数据里面匹配字符集1中的字符,若找到,则用字符集2中的对应位置字符替换;或者删除

    1)与管道一起用  | tr [123] [abc]  将传入数据中的字符进行替换:1->a  2->b  3->c

    2)tr [123] [abc] 输入数据,回车进行转换。ctr+d 退出

    

    tr -d [字符集]  将传入信息中的匹配字符删除


 3.cut 根据指定的分割符对传过来的数据进行分割,返回指定的片段。

    一般通过管道接收要处理的数据。

    cut -d分割符 -f#,#,#

    less /etc/passwd |cut -d: -f1,7

    cut -d: -f1,7 /etc/passed

    上面两个语句结果一样。不会对原文件有影响,只是为了输出。

 4.sort 实现文件内容的排序(按照ascii码,默认升序a--z),只用于显示。

    sort [options] filename

        -f:忽略大小写

        -n:比较数值大小

        -t:指定分割符,用于将文件内容分割后按照指定段来排序 和-k合用

        -k:指定排序的关键段序号 与-t合用

        -u:重复的只显示一次

 5.uniq 移除重复的行,功能比sort更强大(需要排序后使用)

    uniq 

        -c:为每行显示重复的次数    

        -d:仅显示重复的行

        -u:仅显示不重复的行


 6.字符串的模式化搜索

    grep [option] "模式"  filename

        --color=auto  对匹配的字符添加颜色

        -o   :only,仅显示匹配的字符串

        -i   :不分大小写

        -v   :返回不匹配的行

        -E   :使用扩展的 模式

        -A#  -A # :显示匹配行,以及匹配行下面的#行

        -B#  -A # :显示匹配行,以及匹配行上面的#行

        -C#  -C # :显示匹配行,以及匹配行上面#行和下面#行

        

        grep的模式(正则表达式)

        模式:基本模式、扩展模式

        grep默认只支持基本的正则表达式(模式)

        模式,是一类字符所书写出来的用于表示具有某种特点的文本样式

        元字符:用于构建模式,不表示符号本身的意义。

        学习正则表达式,就是学习元字符的使用

        

        基本模式元字符:

        单字符匹配类:

                . 单个任意字符

                [ ] 给定范围内的单个字符  例如[abc] 匹配 a 或 b 或 c

                [^ ] 给定范围外的单个字符


        字符串匹配:

                \(字符串\)  匹配字符串apple ,例如 \(apple\) 匹配apple这个字符序列


        匹配次数:

                * 任意次数其前面的单元。例如 a* 表示任意个 a,\(abc\)*  表示任意个abc

                \? 0个或1个其前面的单元。 例如 a\?  表示1个或0个a

                \{ m\} m个其前面的单元。

                 \{m,n\} m--n个其前面的单元。

                 \{m,\} 至少m个其前面的单元。

                 \{0,n\} 之多n个其前面的单元。


        行位置锚定:

                ^  锚定行首,如:^r  表示已r开头的行。

                $  锚定行尾,如: b$  表示以b结尾的行

                (^$ 表示空白行)


        单词位置锚定:

                \<  \b  锚定单词首部,如 \<a  表示以a开始的单词

                \>  \b  锚定单词尾部,如 b\>  表示以b结尾的单词

                (这里的“单词”需要深入理解)


        向后引用:

                \1 引用前面第一个()匹配到的内容,作为在当前位置需要匹配的内容。比如前面第一个()匹配到abc,则这里的\1就表示要匹配abc,而不是efg;如果前面第一个()匹配到123,则在\1的位置就要匹配123,而不是456.

                \2 引用前面第二个()匹配到的内容


        或:

                \|     如  \<a\|\b>  表示a开头的单词 或者b结尾的单词


    egrep [option] "扩展模式" filename

        

        扩展模式元字符:

        单字符匹配类:

                . 单个任意字符

                [ ] 给定范围内的单个字符  例如[abc] 匹配 a 或 b 或 c

                [^ ] 给定范围外的单个字符

        字符串匹配:

                (字符串)  匹配字符串apple ,例如 (apple) 匹配apple这个字符序列

        匹配次数:

                * 任意次数其前面的单元。例如 a* 表示任意个 a,(abc)*  表示任意个abc

                ? 0个或1个其前面的单元。 例如 a?  表示1个或0个a

                { m} m个其前面的单元。

                {m,n} m--n个其前面的单元。

                {m,} 至少m个其前面的单元。

                {0,n} 之多n个其前面的单元。

                 + 至少一次前面的单元

        行位置锚定:

                ^  锚定行首,如:^r  表示已r开头的行。

                $  锚定行尾,如: b$  表示以b结尾的行

                (^$ 表示空白行)

        单词位置锚定:

                \<  \b  锚定单词首部,如 \<a  表示以a开始的单词

                \>  \b  锚定单词尾部,如 b\>  表示以b结尾的单词

                (这里的“单词”需要深入理解)

        向后引用:

                \1 引用前面第一个()匹配到的内容,作为在当前位置需要匹配的内容。比如前面第一个()匹配到abc,则这里的\1就表示要匹配abc,而不是efg;如果前面第一个()匹配到123,则在\1的位置就要匹配123,而不是456.

                \2 引用前面第二个()匹配到的内容

        或:    

            |    abc|123  表示匹配123 或者 abc

                 ab(c|1)23 表示 匹配abc23  或者 ab123


    fgrep [option] "字符或字符串" filename

        在filename中查找字符或字符串,在这里没有正则表达式的概念,没有元字符的概念。所有字符都是它自己。要找的也是字符自己本身。