众所周知,在Linux下"一切皆文件"的原则,一切配置文件都可以以文本的方式进行编辑、存储。故对文本文件的操作能力,决定着你是否能够在Linux下操纵自如。今天,就写下几个关于Linux下一些常用的文本处理命令。


1、文本文件查看命令:cat、more、less、head、tail


1.1 cat命令:连接并显示,当文本文件有多个时,将其连接并一个一个的完整地显示出来

    eg:

        cat /etc/inittab 

        cat /etc/fstab

        cat /etc/inittab /etc/fstab


    cat主要有三大功能:
        1.一次显示整个文件。# cat filename
        2.从键盘创建一个文件。# cat > filename  
               只能创建新文件,不能编辑已有文件.
        3.将几个文件合并为一个文件: # cat file1 file2 > file

          

    cat命令的常用参数:

        cat -n 或 --number 由 1 开始对所有输出的行数编号

        cat -E 显示文本文件的行结束符

                Linux的行结束符为$,而windows的行结束符为$+回车,

                故在Linux上编辑的文本文件在windows中显示,都是只有一行

        cat命令,以ctrl+c结束 、运行在bash之上;


1.2 文件查看之分屏显示:more、less、head、tail


more命令:more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读。more命令从前向后读取文件,因此在启动时就加载整个文件。


   严格来说more命令只能实现"向后翻页",因为要想实现"往前翻页",当前光标必须是不在文件的尾部

        空格键 space(向后一屏)

        b键    back (向前一屏)

        回车        (向后一行)

        /          (搜寻字串)


less命令:less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。


在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。 less 在查看之前不会加载整个文件


        空格键 space(向后一屏)

        b键    back (向前一屏)

        回车        (向后一行)

        /          (搜寻字串)

        pgup       (向上一页)

        pgdn       (向下一页)

        /          (搜寻字串)

        ?          (搜寻字串)



head命令:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

            查看文件的前n行,默认前10行

                -n num:前num行


tail命令:tail 命令从指定点开始将文件写到标准输出. 


            -n num:查看文件尾部后num行

            -f:查看文件尾部、不退出、等待显示后续追加至此文件的新内容         

                使用tail命令的-f选项可以方便的查阅正在改变的日志文件

                tail -f filename会把filename里最尾部的内容显示在屏幕上

               并且不断刷新,使你看到最新的文件内容.


三大利器:(必须会)

    sed(文本处理类)、awk(文本处理类)、grap(文本查找类)


2、文本处理相关的命令:cut(剪切)、join(合并)、sed、awk

2.1 cut命令:详细内容,可以看我的博客:文本处理类命令之cut命令详解

            -d:指定字段分隔符,默认是空格

    -f:指定要显示的字段,

                -f 1

        -f 1,3(显示第1和第3个属性值,离散表示法)

                -f 1-3(显示第1到第3个属性值,连续表示法)


2.2 文本排序命令:sort、uniq

    文本排序:

        sort(并不影响原文件中的内容,只是影响显示内容,相当于视图,默认升序,ASCII)

    -n(按照数字大小排序,而非默认的ASCII码)

    -r(逆序排列,可以和-n一起使用)

    -t(字段分隔符)

    -k(以哪个字段为关键字排序)

    -u(排序后相同的行,只显示一次)

    -f(排序时,忽略字符大小写)

                关于sort命令的详解:请看我的博客——Linux下的文本排序命令之sort命令详解


        

        uniq (报告和忽略重复的行),什么是重复的行:内容一致,互为相邻

    -d:只显示重复的行

    -D:

    -c:显示文件中行重复的次数


        

        uniq命令的功能是去掉文件中重复行输出。(不改变原文件)

 

        uniq --help 可查看命令参数使用方法。

 

        uniq file1 显示file1中内容,重复行只显示一次。

 

      uniq -c file1 显示file1中内容,重复行只显示一次。在每行前面列出本行在文件中出现几次。

 

        uniq -d file1 只显示file1中重复出现的行,且重复行只显示一次。

   

        uniq -D file1 只显示file1中重复出现的行,且重复行全部显示。

 

        uniq -f 2 file1 忽略每行前两个词,显示file1中内容,重复行只显示一次。

 

        uniq -i file1 忽略大小,显示file1中内容,重复行只显示一次。

 

        uniq -s 5 file1 忽略每行前5个字母,显示file1中内容,重复行只显示一次。

 

        uniq -u file1 只显示file1中不重复的行。

 

        uniq -w 5 file1 只比较每行前5个字母,显示file1中内容,重复的只显示一次。


2.3 文本统计命令之wc命令

文本统计:

wc:(统计一个文本中的:行数,单词数,字符数)

wc /etc/fstab

wc -l /etc/fstab统计行数

wc -w /etc/fstab统计单词数

wc -c /etc/fstab统计字节数

wc -m /etc/fstab统计字符数

wc -L /etc/fstab显示最长的一行包含多少个字符


2.4 字符处理命令之tr命令

    字符处理命令:

tr:转换或删除字符

tr [OPTION]... SET1 [SET2]

SET表示字符集

如:tr ab AB

一个一个字符比较

-d 删除字符集中出现的所有字符,只需要给定一个字符集即可


        详细请看我的博客:Linux下的字符处理命令之tr命令详解




Linux下常见的文本处理命令的归纳总结:

          1、文本文件查看命令:cat、more、less、head、tail

         2、文本处理相关的命令:cut(剪切)、join(合并)、sed、awk

         3、文本排序命令:sort、uniq

         4、文本统计命令之wc命令

         5、字符处理命令之tr命令