2023-03-06 16:38:17 +08:00
|
|
|
|
# 类 Unix 的文本处理
|
2023-02-16 10:16:39 +08:00
|
|
|
|
|
|
|
|
|
在类 Unix 的工作环境中,文本处理是通过使用管道组成的标准文本处理工具链完成的。这是另一个重要的 Unix 创新。
|
|
|
|
|
|
2023-03-06 16:38:17 +08:00
|
|
|
|
## Unix 文本工具
|
2023-02-16 10:16:39 +08:00
|
|
|
|
|
|
|
|
|
这里有一些在类 Unix 系统中经常使用到的标准文本处理工具。
|
|
|
|
|
|
|
|
|
|
- 没有使用正则表达式:
|
|
|
|
|
|
|
|
|
|
- `cat`(1) 连接文件并输出全部的内容。
|
|
|
|
|
|
|
|
|
|
- `tac`(1) 连接文件并反向输出。
|
|
|
|
|
|
|
|
|
|
- `cut`(1) 选择行的一部分并输出。
|
|
|
|
|
|
|
|
|
|
- `head`(1) 输出文件的开头。
|
|
|
|
|
|
|
|
|
|
- `tail`(1) 输出文件的末尾。
|
|
|
|
|
|
|
|
|
|
- `sort`(1) 对文本文件的行进行排序。
|
|
|
|
|
|
|
|
|
|
- `uniq`(1) 从已排序的文件中移除相同的行。
|
|
|
|
|
|
|
|
|
|
- `tr`(1) 转换或删除字符。
|
|
|
|
|
|
|
|
|
|
- `diff`(1) 对文件的行进行对比。
|
|
|
|
|
|
|
|
|
|
- 默认使用基础正则表达式( BRE ):
|
|
|
|
|
|
|
|
|
|
- `ed`(1) 是一个原始行编辑器。
|
|
|
|
|
|
|
|
|
|
- `sed`(1) 是一个流编辑器。
|
|
|
|
|
|
|
|
|
|
- `grep`(1) 匹配满足 pattern 的文本。
|
|
|
|
|
|
|
|
|
|
- `vim`(1) 是一个屏幕编辑器。
|
|
|
|
|
|
|
|
|
|
- `emacs`(1) 是一个屏幕编辑器。(有些扩展的 BRE )
|
|
|
|
|
|
|
|
|
|
使用扩展的正则表达式( ERE ):
|
|
|
|
|
|
|
|
|
|
- 使用扩展的正则表达式( ERE ):
|
|
|
|
|
|
|
|
|
|
- `awk`(1) 进行简单的文本处理。
|
|
|
|
|
|
|
|
|
|
- `egrep`(1) 匹配满足多个 pattern 的文本。
|
|
|
|
|
|
|
|
|
|
- `tcl`(3tcl) 可以进行任何你想得到的文本处理:参见 re_syntax(3)经常与 tk(3tk) 一起使用。
|
|
|
|
|
|
|
|
|
|
- `perl`(1) 可以进行任何你想得到的文本处理。参见 perlre(1)
|
|
|
|
|
|
|
|
|
|
- `pcregrep` 软件包中的 pcregrep(1) 可以匹配满足 Perl 兼容正则表达式(PCRE) 模式的文本。
|
|
|
|
|
|
|
|
|
|
- `ripgrep` 是对grep最佳的替代,命令是rg
|
|
|
|
|
|
|
|
|
|
- 带有 re 模块的 python(1) 可以进行任何你想得到的文本处理。参见“/usr/share/doc/python/html/index.html”。
|
|
|
|
|
|
|
|
|
|
- 如果你不确定这些命令究竟做了什么,请使用“`man command`” 来自己把它搞清楚吧。
|
|
|
|
|
|
|
|
|
|
推荐文本工具:neovim batcat ripgrep
|