本文涉及到的命令主要有:
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