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

相关推荐

  • Linux权限管理练习

    1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作? 无法cd切换进入此目录,无法创建文件,无法删除文件,无法查看里面文件的内容,只能ls列出目录下的内容 2、当用户xiaoqiang对/testdir 目录无读权限时,意味着无法做哪些操作? 无法ls查看目录下的内容 3、当用户wangcai 对/testdir 目录无写权…

    Linux干货 2016-08-05
  • linux网络配置

    一、 网络基本配置:  真不敢想象没有网络的一天应该怎样度过,但是有了网络就行了?原来刚有了网络时由于没有统一的标准,各大硬件厂商各自为政,都在搞网络,但是都只是同一厂商的设备可以进行通讯,就和不同的国家的人交流使用了不同的语言一样,难以将所有的网络连接起来,之后Internet有了统一的标准,大家都遵循它的标准,后来计算机才能进行网络通讯,同样将…

    Linux干货 2016-09-13
  • 01葵花宝典之Linux基础知识

    linux, ifconfig, man, pwd, echo, date, hwclock, fhs

    2018-03-01
  • LVS 之 初识LVS

    LVS 之 初识LVS LVS 之 初识LVS 0x00 概述 0x01 LVS拓扑结构图: lvs集群类型中的术语 : 0x02 lvs-type lvs-nat lvs-dr lvs-tun lvs-fullnat : 0x03 调度算法(scheduler) 0x00 概述 LVS : Linux Virtual Server lvs 工作在 IOS …

    2017-05-11
  • 浅谈技术管理(转载,讲的非常不错,技术和产品都值得一看)

      针对这些年旁观和经历过的技术产品场景,做一些个人的总结和判定,尽量不涉及争议性话题,比如对一个互联网公司而言,技术重要还是产品重要之类的,这种话题一扯开,各有道理,谁也别指望说服谁。     此外,加一个前缀,主要针对非技术领导者所面临的技术管理困境,在很多从传统企业转型或个人站转型的互联网企业里,这个问…

    Linux干货 2015-04-04
  • LVS的四种模型

    相关术语: vs:Virtual Server,Director,Dispatcher,Balancer rs:Real Server,upstream server,backend server lvs集群的类型: lvs-nat:修改请求报文的目标IP lvs-dr:操作封装新的MAC地址; lvs-tun:在原请求IP报文之外新加一个IP首部; lvs…

    Linux干货 2016-10-30