文本处理工具及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

相关推荐

  • 双主模型的lvs-dr高可用负载均衡集群

    实验目的:使用keepalived实现lvs-dr模型双主高可用集群 实验环境:两台virtual server(实现lvs的双主)、两台real server(安装web service,用于负载均衡)、一台clietn用于验证结果 注意:为了不影响实验结果,在实验开始前先关闭iptables和selinux 操作步骤: 一、配置IP 1.配置A主机的IP…

    2017-05-13
  • Linux系统认知

    前言 在认识Linux系统之前先介绍下计算机的组成构造及其功能: 1,简单来说计算机可以划分为软件系统和硬件系统: (1)软件系统自不必说就是各种不同的程序,协助用户更好地使用电脑。 (2)硬件系统指的是主机、显示器、鼠键等硬件设备。 2,按冯诺依曼体系可将计算机按逻辑构成分为: (1)CPU(运算器、控制器)。运算器是数据处理装置,用来完成对数据的算术运算…

    Linux干货 2016-09-20
  • 01day-计算机与操作系统基础

    第1章 计算机基础 1.1 什么是计算机 计算机是个笼统的概念,泛指一切计算功能的机器。这样扯的话,以前的算盘也是计算机了。我们现在的计算机应该称作电子计算机,我天朝人民称为电脑。听说谷歌在研究量子计算机,完全不懂是什么玩意。 一不小心在百度百科看到还有光子计算机,生物计算机,吓我一跳,赶紧复制链接过来,自己慢慢看《百度百科—-计算机》 &nbs…

    Linux干货 2016-06-29
  • 随笔—git的基本命令

    git是一个非常优秀的版本控制系统,可以对各类大小的项目进行源代码管理,  #git的常用功能如下: 1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。 2、在本地仓库上根据不同的开发目的,创建分支,修改代码。 3、在本机上向自己创建的分支上提交代码。 4、在本机上合并分支。 5、将本地仓库代码和分支推送到服务器上的远程仓库 在官网…

    Linux干货 2016-07-04
  • CentOS 7源码安装httpd服务

    httpd的简介     httpd是一个开源软件,且一般用作web服务器来使用。目前最流行的web服务器软件叫做httpd,httpd还有一个俗称叫apache,Apache是一个软件基金会,httpd也是这个软件基金会的一个项目。在早期的http server就叫做apache,到了http server 2.0以…

    Linux干货 2016-08-24
  • Bash的&&,||逻辑运算

    Bash的&&,||逻辑运算 bash里的true和false并不是我们通常所认为的0和1。 true和false是shell的内置命令,返回逻辑值。 $?是一个特殊的变量,存放有上一个程序的结束状态。 在shell里面,把0作为程序是否成功结束的标志。 例如: $ true$ echo$?0$ false$ echo$?1 有时候,下一条命…

    Linux干货 2016-04-11