Jon*_*han 5 linux vim command-line
我有一个文本,其中包含许多拼写错误的单词。我想得到所有这些单词的列表,所以对于这样的文本:
This is just a normall line with some speling mistakes in it.
Run Code Online (Sandbox Code Playgroud)
它会返回:
normall speling
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,最好使用 Linux 工具,如 aspell 或 vim?
您可以使用aspell -a
它来执行此操作,并从标准输出获取文件。这将输出带有行号和替代拼写的单词:
cat example.txt | aspell -a
Run Code Online (Sandbox Code Playgroud)
为了更好地清理你的列表,我会使用类似的东西:
cat aspell.txt | aspell -a | cut --delimiter ' ' --fields 2 | grep --invert-match '*'
Run Code Online (Sandbox Code Playgroud)
解释第二组命令: 的输出aspell -a
有一个*
拼写正确的单词,拼写错误的单词的输出如下:
& dev 26 101: Devi, derv, DEC, Dec, deb, DE, def, div, Dave, dive, dove, DEA, Dee, dew, Del, Dem, Nev, Rev, deg, den, rev, Davy, deaf, defy, diva, TV
Run Code Online (Sandbox Code Playgroud)
dev
是这里拼写错误的单词,当用空格分隔时,它位于第二“列”中。因此,我们通过管道输出aspell
以cut
仅获取第二列。我们还通过管道grep
删除所有带有 的行*
。
| sort | uniq
即使拼写错误的单词多次出现在文本中,您也可以仅将其追加到列表中一次。
归档时间: |
|
查看次数: |
3859 次 |
最近记录: |