文本处理工具及grep命令的理解与使用

1. 文本处理工具

  1.1 文件查看命令cat tac

    cat命令:连接文件并在标准输出上面显示出来

blob.png

 图 1-1   cat帮助文档   

    cat [option]…[file]…

        -E 显示行结束符

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

        -A 显示所有的控制符

        -b 非空行号

        -s 压缩连续的空行成一行

blob.png

       图 1-2  cat命令使用 

    tac 也是文件查看命令,它与cat相反,cat是顺序查看,从文件头部开始逐行显示内容,tac正好相反,它是从文件尾部开始逐行向上显示,所以当用户使用该命令查看文件时,最先显示的是文件尾部的内容,文件头部内容是最后显示的。

  2.1  分页查看文件more less

     more 分页查看文件 

blob.png

图 1-3  more帮助文档

      more [option]…file…

       -d 显示翻页及退出提示

      less 一页一页地查看文件或stdin输出blob.png

图 1-4  less帮助文档 

      less [option]…file…

      查看时可以使用 /文本 搜索 文本  n/N 跳到上一个或下一个匹配

    

   head 显示文本前n行内容

      head [option]…file…

        -c n 指定获取前n个字节

        -n n 指定获取前n行

        -#  指定行数blob.png

图 1-6  head命令使用

   tail 从文件尾部开始查看

     tail [option]…file… 

       -c n 指定获取后n个字节

       -n n 指定获取后n行

       -# 指定行数

       -f 跟踪显示文件新追加的内容

blob.png

图 1-7  head命令使用

  3.1 按列抽取文本cut及合并文件paste

    cut [option]…file…

blob.png

图 1-8  cut帮助文档

       -d delimiter 指明分隔符,默认tab

       -f fields 字段

       -c 按字符切割

       –output-delimiter=string 指定输出分隔符

  blob.png

                    图 1-9  cut命令使用

  paste 合并两个文件同行号的列到一行

      paste [option]…file…

        -d 指定分隔符

        -s 所有的行合成一行

blob.png

            图 1-10  paste命令使用

  4.1 文本数据统计及排序

    4.1.1 wc命令可以统计计数单词总数,行总数,字节总数和字符总数

blob.png

图 1-11  wc帮助手册

    wc 

     -l 只对行进行计数

     -w 只对单词总数计数

     -c 只对字节总数计数

     -m 只对字符总数计数

blob.png

           图 1-12  wc命令使用

  4.1.2 文本排序sort

    sort 把整理过的文本显示在STDOUT,不改变原始文件

blob.png

图 1-13  sort帮助文档

      -r 执行反向整理

      -n 执行按数字大小整理

      -f 选项忽略字符串中的字符大小写

      -u 选项删除输出中的重复行

      -t c 选项使用c作为字段分隔符

      -k 选项按照使用c字符分割的X列来整理能够使用多次

blob.png

图 1-14  sort命令使用

 4.1.3 uniq命令

     uniq 从输入中删除重复的前后相接的行

blob.png

图 1-15  uniq帮助文档

     uniq [option]…file…

       -c 显示每行重复的次数

       -d 仅显示重复的行

       -u 仅显示不存重复的行

     常与sort命令一起配合使用

      sort file | uniq -c

blob.png

图 1-16  uniq命令使用

2.文本处理三剑客之grep

    grep 文本过滤工具

       Global search REgular expression and Print out the line

       作用 文本搜索工具,根据用户指定的"模式"对目标文本逐行进行匹配,打印匹配到的行。

       模式 有正则表达式字符及文本字符编写成的过滤条件

blob.png

图 2-1 grep帮助文档

    grep [option] pattern [file]…

       –color=auto 对匹配到的文本着色显示

       -v 显示不能够被pattern匹配到的行

       -i 忽略大小写

       -n 显示匹配的行号

       -c 统计匹配的行数

       -o 仅显示匹配到的字符串

       -q 静默模式

       -A n after 后n行

       -B n before 前n行

       -C n context 前n行后n行

       -e 实现多个选项之间的逻辑or关系

       -w 正行匹配整个单词

       -E 使用ERE

blob.png

图 2-2 grep命令使用

  egrep grep的扩充版本,优化了一些grep的语法,扩充了grep支持的功能

    egrep=grep -E

      egrep [option] pattern [file…]

3.正则表达式及扩展正则表达式

  REGEXP 有一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字面意义,而是控制或通配的功能。

  正则表达式分为:

     基本正则表达式:BRE

     扩展正则表达式:ERE     blob.png

 图 3-1 正则表达式帮助文档

   blob.png

                 图 3-2 正则表达式

  正则表达式:

    位置锚定: 定位出现的位置

        ^ 行首锚定,用于模式的最左侧

        $ 行尾锚定,用于模式的最右侧

        ^PATTERN$ 用于模式匹配整行

            ^$ 空行  ^[[:space:]]*$ 空白行

        \<或\b 词首锚定,用于单词模式的最左侧

        \>或\b 词尾锚定,用于单词模式的最右侧

        \<PATTERN\> 匹配整个单词

    分组:

        \(\)将一个或多个字符捆绑在一起,当作一个整体进行处理,如\(root\)\+

        分组括号中的模式匹配到的内容会被正则表达式引擎记录与内部变量中,这些变量的命名方式为:\1,\2,\3…

        \1表示从左侧起,第一个左括号以及与之匹配右括号之间的模式所匹配到的字符,引用前面分组括号中的模式所匹配到的字符而非模式本身。 

blob.png

           图 3-3 正则表达式位置锚定

  扩展正则表达式

    次数匹配:

      *   匹配前面字符任意次

      ?  0次或1次

      +   1次或多次

     {m}  匹配m次

     {m,n} 至少m次,至多n次

    位置锚定

      ^     行首

      $     行尾

      \<,\b  词首 

      \>,\b  词尾

    分组

      ()

      向后引用 \1,\2…

    或者

      a|b

      C|cat C或cat

     (C|c)at Cat或cat

blob.png

             图 3-3 egrep命令使用

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

(0)
Stupid_LStupid_L
上一篇 2016-08-07
下一篇 2016-08-07

相关推荐

  • Shell脚本编程之循环(for、while、until)

    Shell脚本编程之循环(for、while、until)   一、循环语句的对比: for语句 while语句 until语句 执行机制: 依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true”…

    Linux干货 2016-08-18
  • Linux用户与权限管理

    由于Linux是多用户、多任务系统,出于一些需要,当我们创建的文件希望对一部分用户开放,对一部分用户隐藏的时候应该怎么办呢?这样的话,就需要涉及到Linux系统中对用户以及对文件权限的管理。 一、相关文件 在Linux中,一切配置文件都是以文本文档的方式来保存的,同样用户的信息也保存在系统的一些文件中,其位置为/etc/passwd。此文件只有root用户具…

    Linux干货 2016-08-05
  • samba的部署及应用

    samba: 启动服务:nmb.server;smb.server 会通过文件系统的方式输出给客户端 smb:Service Message Block;服务信息块 cifs:Common Internet File System,通用互联网文件系统 samba:Andrew Tridgell;热情奔放的桑巴…

    Linux干货 2016-10-19
  • Linux磁盘管理进阶

    Linux磁盘管理进阶 dd命令 SWAP与移动介质 磁盘配额 RAID dd命令 dd – convert and copy a file Copy a file, converting and formatting according&…

    Linux干货 2016-09-05
  • 08.04 笔记总结

    1.ps axo  user,ruser,group,rgroup,cmd  //  ruser  表示程序发起的用户,一般是指系统当前的用户  //  user  表示程序的所有者。在大数情况下,两个用户都是系统当前的用户, 之后当程序被赋予suid的时候,可能user会发生变化。 2.…

    Linux干货 2016-08-08
  • 文本处理工具

    首先介绍一下wc 这个工具,一看到这个词,我不禁捧腹大笑,这不是我们经常要去的地方吗?其实我们都错了,厕所的正确翻译为toilet,为什么叫wc 呢?这中间还有个故事,在这里就大概说一下吧。 很早以前,厕所Toilet里都有水箱watercloset, 人们一提到water closet就想到了toilet,因此watercloset就成了toil…

    2017-07-29