Batch-Jobs
通過 aspell 過濾文件
我需要得到一個乾淨的 txt 文件,我的第一種方法是使用 aspell。問題是我需要批量處理,沒有互動模式。每個 txt 文件都通過管道傳輸到 aspell,並且必須返回一個新文件,其中刪除了非字典單詞。
我發現了相反的行為:列出非字典單詞使用
cat $file | aspell list | sort -u -f
aspell 是實現清理文件夾的正確工具嗎?自動替換拼寫錯誤的單詞怎麼樣?(使用預定義的列表文件)
sed -E -e "s/$(aspell list <file | sort -u | paste -s -d'|' | sed -e 's/^/\\b(/; s/$/)\\b/' )//g" \ file > newfile
這使用命令替換
$(...)
將輸出插入aspell list <$file
到sed
搜尋和替換操作中。
aspell
的輸出也是唯一排序paste
的,用於將每一行與|
. 最後,它通過 sed 管道添加\b
單詞邊界錨點以及左括號和右括號。所有這些都構造了一個有效的擴展正則表達式,就像在搜尋和替換命令\b(word1|word2|word3|...)\b
中用作搜尋正則表達式一樣。sed
您可以使案例如測試整個命令的結果
diff -u file newfile
AFAIK,
aspell
沒有自動更正模式。這可能是一件好事。