sed -E -e "s/$(aspell list <file | sort -u | paste -s -d'|' |
sed -e 's/^/\b(/; s/$/)\b/' )//g" \
file > newfile
Isso usa a substituição de comando $(...)
para inserir a saída de aspell list <$file
em uma operação de busca e substituição sed
.
aspell
também é única classificada e paste
é usado para unir cada linha com |
. Por fim, ele é enviado por meio de sed para adicionar \b
âncoras de limite de palavras, além de abrir e fechar parênteses. Tudo o que constrói uma expressão regular estendida válida como \b(word1|word2|word3|...)\b
para usar como o regexp de pesquisa no comando sed
search and replace.
Você pode testar o resultado de todo o comando com, por exemplo, diff -u file newfile
AFAIK, aspell
não tem um modo de correção automática. Esta é provavelmente uma boa coisa.