文本处理工具

本文主要介绍: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运维部落立场,如若转载,请注明出处:/96474

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达娱乐  万达主管QQ  华宇招商  万达主管  万达直属QQ  万达娱乐直属QQ  万达娱乐招商  万达娱乐主管QQ  万达开户