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)
上一篇 2016-08-07 14:17
下一篇 2016-08-07 22:05

相关推荐

  • Linux启动流程

    Linux的启动流程有以下部分组成,以下流程以CentOs 6.8为例 1、POST加电自检,检测各项硬件工作是否正常,BIOS选择启动设备。 2、根据设备的前446字节,加载bootloader程序 3、initramfs是1.5阶段,intramfs文件是创建系统时生成的文件。intramfs是一个过渡阶段,initramfs加载系统的一些设备驱动,比如…

    2017-05-15
  • 管理SYSTEMd

    核心概念unit,systemctl管理系统服务,

    Linux干货 2018-01-04
  • 鸟哥?马哥?靠边站!今天猫哥带你玩千万PV级别运维架构实战

    1.哼,从今天开始马哥linux,就是我猫哥的天下了!,马哥你奏凯! 我猫哥在此宣誓,从今以后马哥教育正式更名猫哥教育! 哼,信猫哥,得永生! 2.妹的,都好好给我学习,猫哥我盯着呢 3.猫哥我第一次出镜,给咱来个特写啊小伙,拍的好看了,猫哥就免费给你讲讲Linux运维之道。 4.哎哟,拍的还不赖,猫哥我算是45°角仰望星空了,来来,猫哥给你讲讲互联网运维架…

    Linux干货 2016-04-01
  • Linux三剑客之grep使用入门指南

    Linux的grep是一个具有强大功能的文本搜索工具,正确的学习和使用,能很大程度上提高工作效率,减轻运维工作所面临的压力。

    2017-09-09
  • 数据结构-线性表

    1. 线性表:n个数据元素的有序集合。 线性表是一种常用的数据结构。在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来使用的。由于这些特殊线性表都具有各自的特性,因此,掌握这些特殊线性表的特性,对于数据运算的可靠性和提高操作效率都是至关重要的。  线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点…

    Linux干货 2015-04-07
  • Match.com Predicts The Greatest Time For Online Dating In 2016

    If “find love” is regarded as the resolutions for 2016, you are in luck. Ensure you get your most readily useful collection outlines ready, because most hectic time of …

    Linux干货 2022-12-30