文本处理工具

本文主要介绍:1、文本查看工具 2、文本统计工具 3、文本比较工具

本文涉及到的命令主要有:

1、文本查看工具:  cat、tac、rev、more、less、head、tail、cut、paste

2、文本统计及整理工具:  wc、sort、uniq

3、文本比较工具:  diff、patch

一、文本查看工具

1、cat   tac   rev 文件查看

  •         cat 语法:cat  [OPTION]… [FILE]…

          常用选项:

-n  显示行号,空白行也算

-b  显示行号,空白行不算

-ns  显示行号,然后重复的行或字符去重显示为一行或一个字符(连续且相同)

-A  显示所有控制符,所有的隐藏字符,TAB、换行之类

-E显示行结束符$

  • tac :功能同cat,但把文本内容按行上下颠倒
  • rev :功能同cat,但把文本内容按列左右颠倒

2、more  和  less  分页查看文件

  • more: 分页显示文件内容,只能向下翻页,不能向上翻

        选项:

-d  能显示提示信息

在more界面中,可以运行:     /string  搜索关键字

q 退出more界面

  • less:分页显示文件内容,既能向上翻页,又能向下翻页

        在less界面时:

/string  向下搜索关键字

?string  向上搜索关键字

n  按照搜索方向,顺向显示下一个匹配到的内容

N  按照搜索方向,逆序显示下一个匹配到的内容

!COMMAND  在less界面下,执行某命令,不用退出less

q 退出less界面

3、head  和  tail  显示文本前或后行内容

  • head:显示文件的前几行,默认是前10行

        语法:head  [OPTION]… [FILE]…

常见选项:

-c #:表示显示文件的前#个字节

-n #:表示显示文件的前#行

-#:与-n 数字  功能一样,显示文件的前几行

  • tail:显示文件的后几行,默认是10行

        语法:tail   [OPTION]  [FILE]…

常见选项:

-n # :显示文件后几行

-#:与-n 数字 功能一样,显示文件的后几行信息

-c #:显示文件的后多少个字节,而不是后几行

-f  file :  跟踪显示文件file新追加的内容,常用于日志监控。相当于 –follow=descriptor

-F  file:跟踪文件名,若文件删除会提示。相当于–follow=name –retry

-F 可与 -f  联用

  •     tailf 类似于tail -f ,当文件不增长是并不访问文件。

4、cut  按列抽取文本

  • cut:字段截取工具,按照指定的分隔符进行分割后显示,默认分隔符为TAB键

        语法:cut  [OPTION]…  [FILE]…

-d   指定分隔符,默认为tab

-f  FILEDS

#   第#个字段

#,#[,#]…   离散的多个字段,如-f1,3,6

#-#    连续的多个字段,如1-9

-c  按字符切割,取第几个字符到第几个字符数显示的内容(例:cut -c 1-9)

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

5、paste  合并文本

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

         语法:paste  [OPTION]…  [FILE]…

选项:

-d 分隔符  合并时指定分隔符,默认为tab

-s   将一个文件所有行合并成一行显示(一个文件放一行)

二、文本统计工具

1、wc  收集文本统计数据

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

             例:wc /etc/passwd
41   79   2106   /etc/passwd

行数   字符数    字节数

  •          语法:wc  [OPTION]… FILE

                    -l   计数多少行

-c  计数多少个字节

-w   计数单词数量

-m   计数字符数,1个汉字只算一个字符

-L    显示文件中最长行的长度

2、sort  文本排序

  •         语法:sort  [OPTIONS]… FILE(s) 排序时默认是按字符a-z排序

        常用选项

-r   倒序显示

-R  随机排序

-n  按数字大小排序

-f   忽略字符大小写

-u   删除结果中的重复行(不管相不相邻,都去重)

-t STRING   使用指定字符做为分隔符

-k X   按照使用上面-t字符分隔的X列来整理

3、uniq  去重(连续且相同为重复)

  •         语法:uniq  [OPTION]… [FILE]…

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

-d    仅显示重复过的行

-u     仅显示不曾重复的行

连续且完全相同方为重复

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

sort userlist.txt | uniq -c

三、文本比较工具

1、diff  比较两个文件之间的区别

  •  语法:diff [OPTIONS]  FILE1   FILE2

        常用选项:

-u  利用重定向,输出“统一的”diff格式文件,最适用于补丁文件

2、patch  复制改变的数据到文件中(可用来打补丁)

  •  语法:patch [OPTIONS]  FILE  PA1TCHFILE

        选项:

-b   自动备份改变了的文件

3、利用  diff  和 patch  给文件打补丁

例: diff -u f1 f2 > foo.patch    (比较文件  f1  与 f2的区别,并将区别重定向于foo.patch)

patch -b f1 foo.patch     (利用foo.patch 和 f1 文件,即可找回  f2 文件)

==>   f1  (原f2的内容)    f1.orig  (原f1的内容)

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96474

(3)
上一篇 2018-04-16 20:32
下一篇 2018-04-17 15:46

相关推荐

  • 网络管理 tcp/udp详解 (传输层)

    简介: TCP和UDP的区别 TCP是面向连接的传输控制协议,而UDP提供了无连接的数据报服务。 TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作; UDP具有较好的实时性,工作效率较TCP协议高; …

    2018-05-01
  • 第二周作业

    第二周作业
    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    3、请使用命令行展开功能来完成以下练习:
    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │ └── grub
    ├── dev
    ├── etc
    │ ├── rc.d
    │ │ └── init.d
    │ └── sysconfig
    │ └── network-scripts
    ├── lib
    │ └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │ └── local
    │ ├── bin
    │ └── sbin
    └── var
    ├── lock
    ├── log
    └── run

    Linux笔记 2018-05-13
  • 统计linux入门到shell脚本之间的基础练习题。

    答案都由本人奇特思路所创,如有错误,请在下面评论,好及时改正!

    Linux笔记 2018-04-15
  • TCP/IP协议栈 和IP地址规划

    TCP/IP IP地址的规划

    2018-05-15
  • iptables实现局域网访问外网

    1.环境: Linux pc一台,两个网卡: eth0:ip  192.168.0.106gateway 192.168.0.1dns 192.168.0.1eth1:ip 172.24.8.3 windows一个网卡: ip  172.24.8.4 gateway 172.24.8.3 2.Linux  pc的eth0可以访问外网,eth1与windows…

    Linux笔记 2018-07-17
  • 第八周总结

    AWK高级用法

    Linux笔记 2018-05-20