码迷,mamicode.com
首页 > 系统相关 > 详细

Linux中的文本处理工具(一)

时间:2016-08-08 01:10:18      阅读:317      评论:0      收藏:0      [点我收藏+]

标签:linux   关键字   文本文件   command   表达式   

本章内容:

  一、各种文本工具来查看、分析,统计文本文件

  二、grep

  三、正则表达式

  四、扩展正则表达式

  五、Sed


具体内容如下:


一、抽取文本的工具:

     文件内容:lesscat

     文件截取:headtail

     按列抽取:cut

     按关键字抽取:grep


  1.文件查看命令cat, tac,rev

   cat [OPTION]... [FILE]...

       -E: 显示行结束符$

       -T:显示Tab键

技术分享

       -v:显示Windows的空格字符

技术分享

       -A:显示所有控制符

技术分享

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

技术分享

     -b:非空行编号

技术分享     

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

技术分享

    cat 也可以作为一个简单的文本编辑器

技术分享   

   rev命令,可以逆序显示字符

技术分享


  2.分页查看内容:more,less


    more [OPTIONS...] FILE...

        -d: 显示翻页及退出提示 (空格 是继续看下一屏,q是退出)

         !command在看文件的时候可以执行命令

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

   查看时有用的命令包括:

         /,文本搜索文本

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

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


  3.head,tail显示文本前行或后行内容

    head

    head [OPTION]... [FILE]...

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

       -n #: 指定获取前#行

       -#  指定行数

技术分享

    tail

    tail [OPTION]... [FILE]...

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

       -n #: 指定获取后#行

       -#  同上

技术分享

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

技术分享

   4.按列抽取文本cut和合并文件paste


    cut 显示文件或STDIN数据的指定列

    cut [OPTION]... [FILE]...

      -d DELIMITER: 指明分隔符,默认tab

      -f FILEDS:

           #: 第#个字段

           #,#[,#]:离散的多个字段,例如1,3,6

           混合使用:1-3,7

技术分享

      --output-delimiter=STRING指定输出分隔符(也可以用tr命令转换分隔符

技术分享          

       -c按字符切割

         举例:

         cut -d: -f1 /etc/passwd

            cat /etc/passwd|cut -d: -f7

            cut -c2-5 /usr/share/dict/words


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

    paste [OPTION]... [FILE]...

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

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

     如:paste f1 f2

        paste -s f1 f2


  5.wcsort ,diff和path 分析文本工具


 wc (word count)收集文本统计数据

      计数单词总数、行总数、字节总数和字符总数

      可以对文件或STDIN中的数据运行,不跟任何选项,直接根文档,则会把行数、次数、和字符数依次输出。

    选项:

      使用-l来只计数行数

      使用-w来只计数单词总数

      使用-c来只计数字节总数

      使用-m来只计数字符总数

技术分享


  6.sort文本排序

   把整理过的文本对列进行排序,显示在STDOUT,不改变原始文件。

     $sort [options] file(s)

   常用选项:

       -r执行反方向(由上至下)整理

       -n执行按数字大小整理

       -f选项忽略(fold)字符串中的字符大小写

       -u选项(独特,unique)删除输出中的重复行

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

       -k X选项按照使用c字符分隔的X列来整理能够使用多次

技术分享


  7.uniq命令:

   从输入中删除重复的前后相接的(相邻的行)

    uniq[OPTION]... [FILE]...

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

技术分享 

      

        -d: 仅显示重复过的行;

      -u: 仅显示不曾重复的行;

        连续且完全相同方为重复

   常和sort 命令一起配合使用:

    sort userlist.txt | uniq-c

技术分享


  8.diff命令

  比较两个文件之间的区别

    举例如下:

     $diff foo.conf-brokenfoo. conf-works

      5c5

      <use_widgets=no

      ---

      >use_widgets=yes

   注明第5行有区别(改变)


 9.patch 复制对文件的改变

   diff命令的输出被保存在一种叫做“补丁”的文件中

    使用-u选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件。

   patch命令复制在其它文件中进行的改变(要谨慎使用 !)

   用-b选项来自动备份改变了的文件

技术分享



 练习:

   

 1、找出ifconfig命令结果中本机的所有IPv4地址

技术分享


2、查出分区空间使用率的最大百分比值

技术分享

3、查出用户UID最大值的用户名、UID及shell类型

技术分享

4、查出/tmp的权限,以数字方式显示

技术分享

5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序

技术分享


Linux中的文本处理工具(一)

标签:linux   关键字   文本文件   command   表达式   

原文地址:http://1992tao.blog.51cto.com/11606804/1835402

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!