linux之文本处理工具

今天来聊一聊关于linux中处理shell的文本工具,主要说说以下命令:

 · 文件查看命令:cat、tac、

 · 分页查看文件内容:more、less

 · 显示文本前行或后行内容:head、tail

 · 按列抽取文本:cut

 · 合并文件:paste

 · 文本数据统计:wc

 · 文本排序:sort、uniq

cat

      cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

      1.命令格式:cat [选项] [文件]…
      2.命令功能:
           a)一次显示整个文件:cat filename
           b)从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
           c)将几个文件合并为一个文件:cat file1 file2 > file
      3.参数:

         -E  显示行结束符$

         -n  对显示出的每一行进行编号

         -A  显示所有控制符  

         -b  对输出的非空行进行编号

         -s  将连续的空行变成一行

     4.示例:

       以显示行号的方式显示file文件的全部内容

linux之文本处理工具

      把两个文件合并成一个文件

linux之文本处理工具

     用cat键盘输入创建文件(图有点乱,请别介意)

linux之文本处理工具

tac

     反向显示内容,跟cat显示的内容相反。

linux之文本处理工具   

more

       more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

       命令格式:more [选项] 文件名

       命令参数:

              -b   显示翻页及退出提示

             +n   从笫n行开始显示
             -n    定义屏幕大小为n行  
             -c    从顶部清屏,然后显示
             -d    提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
             -l     忽略Ctrl+l(换页)字符
             -p    通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
             -s    把连续的多个空行显示为一行
             -u    把文件内容中的下画线去掉
      常用操作命令:
             Enter    向下n行,需要定义。默认为1行
             Ctrl+F   向下滚动一屏
             空格键  向下滚动一屏
             Ctrl+B  返回上一屏
             =       输出当前行的行号
            :f     输出文件名和当前行的行号
             V      调用vi编辑器
             !命令   调用Shell,并执行命令 
             q       退出more

linux之文本处理工具
           

less   

     less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,less可以往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。 less可同时查看多个文件使用n或者p进行切换。

     命令格式:less  [选项]  文件名

     参数:

            -b <缓冲区大小> 设置缓冲区的大小
            -e    当文件显示结束后,自动离开
            -f     强迫打开特殊文件,例如外围设备代号、目录和二进制文件
            -g    只标志最后搜索的关键词
            -i     忽略搜索时的大小写
            -m   显示类似more命令的百分比
            -N   显示每行的行号
            -o   <文件名> 将less 输出的内容在指定文件中保存起来
            -Q   不使用警告音
            -s    显示连续空行为一行
            -S    行过长时间将超出部分舍弃
            -x <数字>  将“tab”键显示为规定的数字空格
            /字符串   向下搜索“字符串”的功能
            ?字符串   向上搜索“字符串”的功能
            n:重复前一个搜索(与 / 或 ? 有关)
            N:反向重复前一个搜索(与 / 或 ? 有关)
            b: 向后翻一页
            d:  向后翻半页
            h:  显示帮助界面
            Q:  退出less 命令
            u:  向前滚动半页
            y:向前滚动一行
            空格键: 滚动一行
            回车键 :滚动一页
           [pagedown]: 向下翻动一页
           [pageup]:  向上翻动一页


head

      用来显示开头行,默认显示前10行。

      命令格式:head [参数] [文件名]

      这里只介绍 -n

linux之文本处理工具


tail

     与head相反,取后行内容,默认后10行。

linux之文本处理工具


cut

      命令格式:cut [选项] [文件名]

      参数:
            -d 指明分隔符,默认tab
            -f FILEDS:
            #: 第#个字段
           #,#[,#]:离散的多个字段,例如1,3,6
          #-#:连续的多个字段, 例如1-6
            混合使用:1-3,7
          -c 按字符切割
          –output-delimiter=STRING指定输出分隔符

          显示文件的指定列
          cut -d: -f1 /etc/passwd
          cat /etc/passwd | cut -d: -f7
      示例:

linux之文本处理工具

      -d: -f1 表示:以:为分隔符截取第一列的数据。

paste

      合并两个文件同行号的列到一行
      命令格式:paste [选项]  [文件名]

     参数:
           -d 分隔符:指定分隔符,默认用TAB
           -s 所有行合成一行显示

linux之文本处理工具

wc
     wc: word count 计数
    参数: 

           -m 字符数
           -c 字节
           -l 行数
          -w 单词数

    示例:
linux之文本处理工具 
   有没有疑问?为什么输入的是abcd,明明是4个,怎么字符数和字节数显示结果都是5?是因为后面还有一个结束符没显示,但是系统也统计了进去。

sort

      命令格式:sort  [选项]  [文件名]

     参数:

           -r 执行反方向(由上至下)整理
           -n 执行按数字大小整理
           -f 选项忽略(fold)字符串中的字符大小写
          -u 选项(独特,unique)删除输出中的重复行
          -t c 选项使用c做为字段界定符
          -k X 选项按照使用c字符分隔的X列来整理能够使用多次
linux之文本处理工具

uniq

      从输入中删除前后相接的重复的行,常和sort 命令一起配合使用
      命令格式:uniq [选项] [文件名]

     参数:
           -c: 显示每行重复出现的次数
           -d: 仅显示重复过的行
           -u: 仅显示不曾重复的行
         连续且完全相同方为重复
 linux之文本处理工具

      看出什么变化了么?连着的123,被删除了一个。再看下张图

linux之文本处理工具

linux之文本处理工具

    好了,就先说这么多吧,有没有觉得这些命令很好玩?大家下周见喽!( ^_^ )/~~拜拜
































































































































































































































原创文章,作者:吼吼哈嘿,如若转载,请注明出处:http://www.178linux.com/83092

(0)
上一篇 2017-07-29 17:33
下一篇 2017-07-29 18:48

相关推荐

  • Linux基础知识(三)-用户管理组管理,正则grep,文本处理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中 5、取出当前主机的IP…

    Linux干货 2016-10-09
  • linux作业管理

    作业管理 kill kill命令:     向进程发送控制信号,以实现对进程管理     显示当前系统可用信号:kill -l     常用信号:man 7 signal    &…

    Linux干货 2016-09-09
  • 开学第一天

      今天是我来到马哥教育的第一天,来之前心情非常之忐忑,因为没有接触过linux系统,感觉是个新事物,来到教室里,一百多人的大集体,年龄的差异,使我感觉到压力。首先马哥和张sir的讲话,非常的帮,其中令我记忆最深刻的是那句话,取上者得中,取中者得下。一个人在奋斗的时候如果给自己的目标定的低,那就收获的还要低。所以要高标准的要求自己,一开始给自己定一…

    Linux干货 2018-03-26
  • Linux进程查看与管理命令总结

    Linux进程查看与管理命令总结 内核的功能: 进程管理 文件系统 网络功能 内存管理 驱动程序 安全功能 Process:运行中程序的一个副本。(存在生命周期) Linux内核存储进程信息的固定格式:task struct 多个任务的task struct组件的链表:task list 进程创建: init 父子关系 进程:都有其父进程创建 fork(),…

    Linux干货 2016-09-07
  • 批量创建用户(8月1日作业)

    1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution" 2、创建下面的用户、组和组成员关系 名字为admins的组;  用户natasha,使用admins作为附属组;  用户harry,也使用admins作为附属组 &nbs…

    Linux干货 2016-08-04
  • Linux启动和内核管理

                                        Linux启动和内核管理 本章内容: centos5和centos6的启动流程 服务管理 grub…

    系统运维 2016-09-21