首页>教程>Linux 命令手册> 文件内容查看与处理 >Linux ispell 命令 - 交互式文本拼写纠正校对工具

Linux ispell 命令 - 交互式文本拼写纠正校对工具

ispell 是 Linux 系统中一款经典的交互式文本拼写检查工具,英文全称为 Interactive spell,比 spell 命令提供了交互能力与词典扩展功能。它能够逐个词对文本进行检查比对,同时还能识别 TeX、LaTeX、HTML 等多种文件格式,在校对具有标签的文件格式时,能忽略标签检查有效文本;同时还可以使用个人词典,功能非常的丰富。

相似功能命令对比

如下给出与 ispell 功能相似的拼写检查工具之间的对比:

  • spell:传统简单拼写检查工具,不支持交互功能,功能也比较单一
  • aspellispell 的现代化替代工具,GNU 官方项目
  • hunspellispell 的现代化替代工具,支持中文,支持 LibreOffice、浏览器等软件

安装说明

多数 Linux 发行版与 FreeBSD 默认不预装 ispell,在各个系统中,使用如下命令安装:

Debian / Ubuntu 系列安装 ispell

# 更新软件源
sudo apt update
# 安装 ispell
sudo apt install -y ispell

RHEL / AlmaLinux / Rocky Linux 系列安装 ispell

# 更新源
sudo dnf check-update
# 安装 ispell
sudo dnf install -y ispell

ispell 命令语法结构

ispell 具有多种语法结构,其基础语法与通用参数的具体形式如下:

基础语法

ispell 多种语法结构形式如下:

ispell [通用选项] [-M|-N] [-L 上下文行数] [-V] 文件...
ispell [通用选项] -l
ispell [通用选项] [-f 文件] [-s] [-a|-A]
ispell [-d 文件] [-w 字符] -c
ispell [-d 文件] [-w 字符] -e[e]
ispell [-d 文件] -D
ispell -v[v]

通用选项(common-flags)

通用选项具有以下可选的值:

[-t] [-n] [-H] [-o] [-b] [-x] [-B] [-C] [-P] [-m] [-S] [-d 文件] [-p 文件] [-w 字符] [-W 数字] [-T 类型] [-k 名称 列表] [-F 程序]

附属工具语法

ispell 的附属工具主要用于词典的管理,可以使用的附属工具的语法形式如下:

# 构建哈希词典
buildhash [-s] 词典文件 词缀文件 哈希文件
# 精简词典
munchlist [选项] [文件]
# 提取词缀
findaffix [选项] [文件]
# 测试词缀
tryaffix [-p|-s] [-c] 扩展文件 词缀...
# 合并词典条目
icombine [选项] [词缀文件]
# 安全合并文件
ijoin [-s|-u] 选项 文件1 文件2

ispell 命令使用示例

如下给出一些 ispell 命令的基本使用示例,便于掌握 ispell 命令的基本用法。

交互式检查单个文本文件

不适用任何选项,会以交互模式,逐词高亮显示错误单词,并提供近词推荐,可以对错误单词进行替换:

ispell test.txt

检查 HTML 格式文件

使用 -H 选项指定文件为 HTML / SGML 格式,会自动跳过 HTML 标签,只检查文本内容:

ispell -H index.html

检查 TeX/LaTeX 文件

使用 -t 选项指定文件为 TeX / LaTeX 格式,会忽略命令、引用标签与数学公式,只检查正文文本:

ispell -t paper.tex

只输出所有错误单词列表

使用 -l 选项,启动非交互模式,仅输出拼写错误单词列表:

ispell -l < test.txt

指定自定义词典检查

使用 -d 选项指定备用系统词典,使用英式英语词检查文本内容:

ispell -d british document.txt

生成文件备份并检查

使用 -b 选项会在检查前,先生成 .bak 备份文件:

ispell -b report.txt

ispell 命令选项解释说明

如下给出 ispell 命令的全部选项的解释说明,对选项进行了分类,并解释说明其具体作用:

选项分类选项详细说明
文件格式识别-t指定输入文件为 TeX / LaTeX 格式,在检查时自动忽略命令、引用、数学公式等内容
-n指定输入文件为 nroff / troff 格式的文档
-H指定输入文件为 HTML / SGML 格式,在检查时会跳过标签,但是会检查 alt 属性的文本内容
-o强制按普通文本处理,不按照识别的文件格式处理文本
界面与显示-M在屏幕的底部显示单行的迷你操作菜单,可以简化交互提示
-N禁用迷你操作菜单
-L num设置错误单词的上下文显示的行数,默认情况下会按屏幕比例进行自动计算
-V非 7 位可打印字符以 cat -v 风格显示,可以用于兼容老旧终端
文件备份控制-b在检查文件之前自动生成 .bak 后缀的备份文件
-x如果没有错误,则在拼写检查完成后删除备份文件
拼写规则控制-B将缺少空格的连写词(如 notthe)判定为拼写错误
-C允许合法复合连写词
-P只在无近词匹配的情况下,才会生成词根 / 词缀组合猜测
-m始终生成可能的词根与词缀组合猜测
-S按概率的高低对推荐的替换词列表进行排序
-W num不进行检查的单词的长度,默认为 1 个字母
词典相关-d file指定哈希词典文件,不指定路径时从 /usr/lib/ispell/ 目录中加载文件
-p file指定自定义个人词典,如果使用的是相对路径,是相对于 $HOME 目录
-D导出当前词典中的词缀表信息,同时输出到标准输出上
-w chars允许单词中包含额外的字符,如:_&
-T type设置默认格式化字符类型,如 nroff、.tex
格式化扩展-k name list自定义格式化时忽略一些内容的规则
-F program指定外部反格式化程序,需要输出字符的位置与原文的内容一致
批量/脚本模式-l以非交互模式输出所有拼写错误的单词的列表
-a以管道模式,输出检查的结构化结果
-A功能与 -a 选项相同,额外支持 &Include_File& 指令,用于包含文件,可以嵌套使用
-f file-a/-A 结合使用,将检查后的结果输出到指定的文件中
词缀处理-c读取单词并输出其可能的词根和词缀的组合形式
-e反向展开词缀
-e1~e5控制词缀展开的输出格式与等级
版本信息-v显示 ispell 版本信息并退出
-vv显示版本号和编译配置选项等详细信息

附属工具常用选项表

如下给出一些与 ispell 命令一起使用的附属工具的常用的选项的解释说明:

工具选项说明
buildhash-s静默的构建哈希词典,不输出任何的状态信息
munchlist-v在精简词典的过程中,输出过程处理信息
-D调试模式,保留临时文件
-s剔除在系统词典中的已有的单词
findaffix-p提取前缀
-s提取后缀,该值是默认值
-f使前缀按照出现的频率排序
tryaffix-c只统计词缀,不输出具体的词根信息
icombine-T指定字符类型来合并词典
ijoin-s使用有符号排序,正确处理 8 位字符
-u使用无符号排序,正确处理 8 位字符

结语

ispell 是 Linux 系统中一款经典的交互式文本拼写检查工具,能够识别 TeX、LaTeX、HTML 等多种文件格式,也能通过管道与脚本深度集成,功能丰富。在本文中介绍了 ispell 命令的基本语法结构,给出了 ispell 命令的详细使用示例,最后也给出了 ispell 命令的所有选项的详细解释说明。

掌握 ispell 的基础交互、批量检查与词典管理用法,可以用它来完成拼写检查,但它不支持中文,要检查中文需要使用其他的工具。