Grep

用一組“正確”的詞對流進行grep?

  • September 11, 2021

我覺得這是一個非常基本的問題,但我不知道如何最好地做到這一點:我有幾個文件(用 Latex 編寫),我想spell在它們上執行程序以生成拼寫錯誤列表:

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

問題當然是它認為一些有效的關鍵字拼寫錯誤,例如文件中的這樣一行是:

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

我在想是否可以將諸如此類的單詞documentclass放入文件中並將其合併為上述命令的一部分,這樣它就不會被視為拼寫錯誤?

這不太可能奏效。您不能只對非文本內容使用拼寫檢查器。例如,它不會發現 \begin 是拼寫錯誤嗎?您是否考慮過在體面的 tex 感知編輯器中打開文件並執行編輯器的拼寫檢查?或者可能將文件編譯為 PDF 或任何其他格式,從編譯的文件中復製文本並對其進行拼寫檢查?

無論如何,做你想做的事,即使我懷疑它會按預期工作,你可以只傳遞一個帶有單詞 to 的文件,grep這樣-v它就會跳過匹配的行:

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

用於detex(1)擺脫 LaTeX 命令(無論如何,大多數命令)並通過拼寫檢查器執行結果。

正如 Terdon 的回答所說,您不能對非文本進行拼寫檢查,至少不能直接進行。檢查例如aspell(1)在拼寫檢查之前應用的過濾器列表,按aspell dump filters. 該命令似乎aspell list直接給出了你想要的。

引用自:https://unix.stackexchange.com/questions/668578