Grep
用一組“正確”的詞對流進行grep?
我覺得這是一個非常基本的問題,但我不知道如何最好地做到這一點:我有幾個文件(用 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
直接給出了你想要的。