文本处理工具
文本常见处理工具
文本常见的处理工具,主要的作用是在Linux系统中自动化的将文件或指令的输出(回显)进行切割,筛选。留下我们最想要的部分,便于查看,或监控服务器状态。
这些工具就是我们之后便捷、自动化处理Linux任务的前提条件
1.1 文件内容查看命令
1.1.1 查看文本文件内容
1.1.1.1 cat
命令cat
用于查看文本内容
1 | cat [选项] <文件名> |
1.1.1.2 nl
命令nl
的作用相当于cat -b
,对文本非空行编号显示
1.1.1.3 tac
命令tac
的作用也是查看文本内容,但查看的方向与cat
相反。是从文本尾部开始读取文件
反向查看(倒序)文件内容
1.1.1.4 rev
命令rev
的作用是将文本每行的内容进行反转(reverse 反转)
1.1.2 查看非文本文件内容
1.1.2.1 hexdump
命令hexdump
是Linux下的一个二进制文件查看工具,它可以将二进制文件转换成ASCII、八进制、十进制、十六进制格式进行查看
1 | hexdump [选项] <文件名> |
1.1.2.2 od
命令od
的作用是读取所给予的文件的内容,并将内容与八进制字码呈现出来
1 | od [选项] <文件名> |
1.1.2.3 xxd
xxd的作用就是将一个文件以十六进制的形式显示出来。还可以将十六进制转换回其原始二进制形式
1 | #例如: |
1.2 分页查看文件内容
1.2.1 more命令
命令more
针对于文本内容过多时用于查阅使用。代替cat。好处时只会显示一部分,多余部分会随着翻阅慢慢展示
1 | more -n #按空格后每次只读取文件n行内容 |
1.2.2 less命令
命令less
和命令more
功能都是分屏读取内容,less
功能比more
更强大一些,支持一些vim的操作
1 | less <文件名> #显示一屏 |
1.3 显示文本前或后行内容
1.3.1 head命令
用于截出文件顶上的内容查看
1 | # head 命令 —— 显示文件的头部内容 |
例子:
1 | cat /dev/urandom | tr -dc '[:alnum:]' | head -c x |
1.3.2 tail命令
1 | tail -c x #指定获取后x字节 |
1.3.3 head 和 tail 的相对取值用法
命令 | 含义 | 示例 |
---|---|---|
head -n k file | 取 file 前 k 行内容 | head -n 3 /etc/passwd |
head -k file | 取 file 前 k 行内容 | head -3 /etc/passwd |
head -n +k file | 取 file 前 k 行内容 | head -n +3 /etc/passwd |
head -n -k file | 取file 第1行到倒数第 k 行内容 | head -n -3 /etc/passwd |
tail -n k file | 从后往前数,取 file 最后一行到第n行内容 | tail -n 3 /etc/passwd |
tail -k file | 从后往前数,取 file 最后一行到第n行内容 | tail -3 /etc/passwd |
tail -n -k file | 从后往前数,取 file 最后一行到第n行内容 | tail -n -3 /etc/passwd |
tail -n +k file | 从后往前数,取 file 第k行到最后一行内容 | tail -n +3 /etc/passwd |
1.4 按列抽取文本 cut
命令cut
的作用是提取文本文件或STDIN数据的指定列
1 | cut -d'<分隔符>' #指明分隔符,默认tab |
1.5 合并多个文件 paste
命令paste
的作用是将多个文件的同一行内容合并为一行
1 | paste -d #指定合并分隔符,默认使用tab |
1.6 文本分析工具
1.6.1 文本数据统计 wc
命令wc
可用于统计文件的行数、单词数、字节数和字符总数。可以对文件或STDIN中的数据统计
1 | wc [选项] <文件> |
1.6.2 文本排序 sort
命令sort
用于将文本整理后输出到屏幕上,不改变原始文件
1 | sort [选项] <文件> |
1.6.3 去重 uniq
命令uniq
的作用是从输入中删除前后相接的重复行,常和sort
配合使用。若重复行不相接,则无法去重
1 | uniq [选项] <参数> |
1.6.4 比较文件
1.6.4.1 diff
命令diff
用于比较两个文件之间的区别
1 | diff [选项] <文件1> <文件2> |
1.6.4.2 patch
命令patch
用于根据补丁文件**(diff -u)**中记录的差异信息,将更改应用到原始文件上,从而将原始文件更新为新的版本。使用时需要谨慎,因为这会直接修改目标文件。
1 | patch [选项] <原始文件> <补丁文件> |
1.6.4.3 vimdiff
命令vimdiff
的作用相当于vim -d。打开多个文件并对比文件之间的不同
1.6.4.4 cmp
命令cmp
用于查看二进制文件的不同。只会输出不同的具体位置,不会输出内容
1.6.5 文本内容转换 tr
命令tr
的英文是”transform”,即转换的意思。该命令的作用是将字符进行替换、压缩、删除。它可以将一组字符转换成另一组字符。tr只能从标准输入中读取数据。要么将文件重定向到标准输入,要么通过管道符输入数据
1 | tr [选项] <字符1> <字符2> |