文本处理工具及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 22:07
下一篇 2016-08-07 22:15

相关推荐

  • shell编程

       编程基础   编程基础:       编程:也就是程序+数据           程序编程风格:                  过程式:以指…

    Linux干货 2016-08-15
  • Linux实验-搭建路由环境

    Linux实验-搭建路由环境 背景: 在学习网络基础过程中,为了加强理解路由功能,准备用Linux模拟一个路由环境。同时也试试Linux的路由转发功能。 实验简介: 准备5个虚拟机,其中三个做路由,两个做客户机,相连的设备之间在同一个网段,三个路由设备在中间,两个客户机在两侧,最后实现两个虚拟机能相互通信。 实验规划: 这里配的IP都是随意配的,保证相连设备…

    2017-08-19
  • Linux发展史

    适用对象:本文适合希望开始学习以及想了解Linux的朋友阅读。本文中所有内容仅供参考,不作为科学依据。 一、      Linux的起源 最初的计算机其实是具有单一功能的大型计算器,只能完成指定或者设定好的工作。多数情况下计算机资源是处于空闲状态的,为了不使资源浪费,就需要使计算机能够或者可以进行多种工作。或…

    Linux干货 2016-10-14
  • 文件查找命令

    查找命令:local,find local:非实时查找,通过系统数据库进行搜索,无法查找到在系统数据库更新后创建的文件,但是查找速度快,模糊查找(不仅会查找到文件名还会找到文件全路径) find:在硬盘上进行实时搜索,速度较慢,但是可以找到当前所有的数据 系统数据库在   /var/lib/mlocate/mlocate.db 系统一般会…

    Linux干货 2016-08-16
  • Linux基础知识之用户和组的配置文件解析

    实验环境:  Linux系统的版本为CentOS6.8_x86_64版本,以root用户远程用xshell连接,进行实验。 1.创建用户设置的配置文件:/etc/default/useradd        useradd 的配置文件如下图所示:        &nbs…

    Linux干货 2016-08-02
  • iptables-防火,防盗,防老王

        防火墙,其实说白了将,就是用于实现linux下访问控制的功能的,它分为两种方式,硬件防火墙和软件防火墙。不过无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义防火墙如何工作的,这就是防火墙的策略,规则,以达到让它对出入网络的IP,数据进行检测。     目前市…

    Linux干货 2017-05-02