8-4 文本处理工具

本节主要了解文本处理工具




文件查看命令:cat  tac  rev

    cat [OPTION]… [FILE]…

        -E:显示行结束符$

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

        -A:显示所有控制符

        -b:非空行编号

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

图片1.png

tac:倒着显示内容

rev:倒着显示内容,同一行内也倒着

 

分页查看文件:more

     more [OPTIONS…] FILE…

         -d:显示翻页及退出提示

  less :一页一页地查看文件或STDIN 输出

查看时有用的命令包括:

       /文本  搜索 文本

       n/N:跳到下一个 or  上一个匹配

 less 命令是man命令使用的分页器

 

显示文本前或后行内容

 head [OPTION]… [FILE]…

     -c #:指定获取前#字节

     -n #:指定获取前#行

     -#:指定行数

图片2.png

 tail [OPTION]… [FILE]…

      -c #:指定获取后#字节

      -n #:指定获取后#行

      -#:

      -f:跟踪显示文件新追加的内容,常用日志监控

图片3.png

 

文本内容切割:cut  

    cut [OPTION]… [FILE]…

       -d delimiter:  指明分隔符

        -f fileds:指明需要取出的字段

            #:第#个字段

            #,#,# :离散的多个字段,例如1,2,3

            #-#:连续的多个字段,  例如1-6

            混合使用:1-3,7,9,10-13

            -c 按字符切割

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

图片4.png

 

 合并文件

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

      paste [OPTION]… [FILE]…

          -d:分隔符: 指定分隔符,默认用TAB

          -s:所有行合成一行显示

图片5.png

 

字符统计:wc

wc [OPTION]…[FILE]…

   -l:统计行数

   -w:统计单词个数

   -c:统计字符个数

   -m:只计字符总数

图片6.png

其中1是行数,2是单词个数,7是字符数

 

 

文本排序:sort

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

   sort [OPTION]… [FILE]…

    -r:逆序

    -n:以数字大小进行排序

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

    -u:删除输出中的重复的行

    -t c:使用c 做为字段界定符

    -k #:以指定字段为标准排序

图片7.png

取第三列以数字大小排列

 

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

    uniq [OPTION] …[INPUT[OUTPUT]]

            -c:显示每行重复的次数

            -d:仅显示重复的行

            -u:仅显示不重复的行

 

grep

   文本过滤( 模式:pattern) 工具;grep, egrep, fgrep (不支持正则表达式)

   作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行;

   模式:由正则表达式字符及文本字符所编写的过滤条件

   grep [OPTIONS] PATTERN [FILE…]

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

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

  -i:忽略字符大小写

  -n:显示匹配的行号

  -c:统计匹配的行数

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

  -q:静默模式,不输出任何信息

  -A #after,匹配到的后#

  -B #before,匹配到的前#

  -C #context,匹配到的前后各#

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

       grep  -e cat -e dogfile

  -w :整行匹配整个单词

  -E :使用ERE,支持使用扩展的正则表达式

图片8.png

 

元字符:

      字符匹配:

          . :匹配任意单个字符

          []:匹配指定范围内的任意单个字符

          [^]:匹配指定范围外的任意单个字符

               表达方法:

                   [:alnum:]:表示所有字母和数字

                   [:alpha:]:表示所有的字母(不区分大小写)

                   [:digit:]:表示所有的数字

                   [:lower:]:表示所有的小写字母

                   [:upper:]:表示所有的大写字母

                   [:space:]:表示所有的空白符号

                   [:punct:]:表示所有的标点符号

      次数匹配:用在要指定次数的字符后面,用于指定前面的字符要出现的次数

          *:匹配前面的字符任意次,包括0次 次

              默认正则表达式是工作在贪婪模式下,尽可能长的匹配

          .* :任意长度的任意字符

          \? :匹配其前面的字符0 1次,即可有可无

          \+ :匹配其前面的字符至少1

          \{m\} :匹配前面的字符m

          \{m,n\} :匹配前面的字符至少m 次,至多n次(小于等于,大于等于)

          \{0,n\} :匹配前面的字符至多n

          \{m,\} :匹配前面的字符至少m

     位置锚定:对特定位置进行定位

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

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

         ^PATTERN$:用于模式匹配整行

             ^$:空行,不包含有空格的行

             ^[[:space:]]*$:空白行,包含有空格的行

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

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

          \<PATTERN\>:匹配整个单词

         分组:是指将一个或多个字符捆绑在一起,当做一个整体进行处理

               符号是: \(\):

                   如:\(xy\)*ab 表示xy这个整体可以出现无数次

图片9.png

       查找出passwd文件中,r后跟任意小写字母再跟t的字符

扩展正则表达式元字符:

     字符匹配:

         .:任意单个字符

         []:指定范围内的单个字符

         [^]:不在指定范围内的单个字符

次数匹配:

    *:任意次

    ?:0次或1

    +:至少1

    {m}:精确匹配m

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

    {m,}:至少m

    {0,n}:最多n

 分组:

     ():用括号括起来表示要引用的内容,不需要转义

 或者:

      a|b:a或者b

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

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

相关推荐

  • LB-lvs

    Linux Cluster: Cluster:计算机集合,为解决某个特定问题组合起来形成的单个系统; Linux Cluster类型: LB:Load Balancing,负载均衡; HA:High Availiablity,高可用; A=MTBF/(MTBF+MTTR) (0,1):90%, 95%, 99%, 99.5%, 99.9%, 99.99%, …

    Linux干货 2017-06-25
  • 第一天参与马哥linux运维面授

    很高兴认识大家,介绍一下,我叫袁亚琼,来自美丽的云南。我是一个随和而又不随性95年女子,喜欢运动,擅长田径。学食品检测的,上学期间没怎么接触计算机,现在又来学专业计算机,内心还是有几丝恐慌,希望在今后的学习路上得到各位学友和老师的指导和帮助。等工作稳定,可以去云南放松一下,云南是个吃喝玩乐的好地方,同时也是个感受慢节奏生活的佳地。云南欢迎您哦! 选择学习li…

    Linux干货 2018-03-26
  • keepalived+nginx部署(单主模型)

    环境准备Centos7系统,后端服务器提供web服务。地址规划: VS1: 172.18.51.7 VS2:172.17.51.77 RS1:172.18.51.74 RS2:172.18.51.75 VirtualIP:172.18.51.82 拓扑图: 原理:nginx是高度模块化的应用程序,其中nginx_proxy模块即可实现负载均衡,将前端的用户请…

    Linux干货 2017-05-17
  • 马哥教育网络班22期+第1周课程练习

    1.描述计算机的组成及其功能。    组成:CPU (运算器+控制器),存诸器(内存与硬盘),输入设备,输出设备。    运算器:对数据进行加工处理的部件(包括算述运算与逻辑运算)。    控制器:负责从存储器取出指令,按指令的要求发出控制信号,使各部件协调的,一步步的完成各种操作。   …

    Linux干货 2016-08-22
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp [root@localhost tmp]# vim rc.sysin…

    Linux干货 2016-08-02
  • sed

    Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前 处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后 ,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环 。如果没有使诸如‘D’的特殊命令,那会在两个循环之间清空 模式空间,但不会清空保留…

    Linux干货 2017-12-03