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

相关推荐

  • Hadoop简介

    我们之前已经解释过了分布式存储,分布式存储有很多的解决方案,其中有个开源程序叫做HDFS,HDFS+MAPREDUCE=hadoop。 hadoop不算是单存的分布式存储,我们之前提到的Mogilefs和Fastdfs都是分布式存储。hadoop属于分布式计算,MAPREDUCE是一个编程的框架,使得程序可以并行计算。 HDFS适用于存储单个大文件,在存储中…

    2017-03-13
  • 初学linux遇到的问题

    1 su uername 显示的是基本格式,不是类似于[root@Centos7 ~]#,看着不知道进入到哪个目录。解决办法:在家目录下使用ls -a命令显示隐藏文件,使用nano .bash_profile命令,在那里编辑PS1=”[\u@\h \W]\\$”保存退出就好了。 疑问:为什么不在/etc/bashrc下更改呢?自答:改…

    Linux干货 2017-07-15
  • FHS文件系统下个各目录功能

    FHS文件系统下个各目录功能 FHS文件系统的建立是为了让开发者和用户可以预测软件安装文件和文件夹的位置。对整个linux的文件系统系统做了以下的规范:     /bin:命令二进制文件的存放目录;     /boot:系统启动时一些文件存放的目录,包含引导linux的重要文件,…

    Linux干货 2016-10-18
  • vsftp简单应用

    vsftp配置详解 前言 FTP(File Transfer Protocol)是文件传输协议的简称。它能让用户 连接上一个远程计算机(运行着 FTP 服务器程序)查看远程 计算机上有哪些文件,然后把文件从远程计算机上下载到 本地计算机,或把本地计算机文件上传到远程计算机。但是ftp是一种古老的文件传输协议,是明文传输,特别的不安全所以就有了vsftp。 一…

    Linux干货 2016-12-18
  • httpd-2.2和httpd-2.4区别 、请求方法和响应状态码、虚拟主机、访问控制、持久链接

    第十周
    The Apache HTTP Server is a powerful, efficient, and extensible web server.
    2018/2/4 16:33

    2018-02-04
  • 什么叫Linux

    什么叫linux:     Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 谁编写的linux: Linux的出现,最早…

    Linux干货 2017-03-27