针对一组“正确”单词 Grep 流?

针对一组“正确”单词 Grep 流?

我觉得这是一个非常基本的问题,但我不知道如何最好地实现这一点:我有几个文档(用 Latex 编写),我想spell在它们上运行程序以生成拼写错误列表:

spell -n -o *.tex | sort -k2 | uniq >misspelt.txt

当然,问题在于它认为一些有效的关键字拼写错误,例如文件中的一行是:

...
/home/me/Documents/doc1.tex: documentclass
...

我在想是否可以将类似的单词放入documentclass文件中并将其合并为上述命令的一部分,以便它不是算作拼写错误吗?

答案1

用于detex(1)摆脱 LaTeX 命令(无论如何,大多数命令)并通过拼写检查器运行结果。

正如 Terdon 的回答所说,您不能对非文本进行拼写检查,至少不能直接进行拼写检查。检查例如aspell(1)在拼写检查之前应用的过滤器列表,由aspell dump filters.看来该命令aspell list直接给出了您想要的内容。

答案2

这不太可能起作用。您不能只对非文本的内容使用拼写检查器。例如,它不会发现 \begin 是拼写错误吗?您是否考虑过在一个像样的文本感知编辑器中打开文件并运行编辑器的拼写检查?或者也许将文件编译为 PDF 或任何其他格式,从编译的文档中复制文本并对其运行拼写检查?

不管怎样,要做你想做的事,即使我怀疑它会按预期工作,你可以传递一个带有单词 to grepwith的文件-v,这样它就会跳过匹配的行:

spell -n -o *.tex | sort -k2 | grep -vf keywords.txt | uniq >misspelt.txt

相关内容