我需要大约10k java
个文件才能在java
double-quotes
文件中查找拼写错误的字词
以下是double-quotes
find . -name "*.java" -exec grep -Po '".*?"' {} \;
但我不知道如何在此基础上使用spell
。
答案 0 :(得分:1)
我只有Linux和ispell
,所以如果你不在Linux上,以下内容可能对你不起作用(按原样)。如果您只想查找拼写错误的单词并列出提案,则可以使用
find . -name "*.java" -exec grep -Po '"([^"\\]|\\.)*"' {} \; \
| ispell -a -S
-a
选择管道模式,-S
禁用排序,这往往会首先列出更好的替换。
如果您想要就地修复字符串,那么您可能希望使用类似
的内容TEMP=`mktemp`
find . -name "*.java" | xargs grep -l '"...*"' \
| xargs echo /usr/bin/ispell -F ./so20836228-java-deformatter.sh > $TEMP
source $TEMP
这会生成使用以下ispell Java“deformatter”的拼写检查命令:
#!/bin/sh
# Experimental Java ispell deformatter: use at your own risk!
/bin/sed -e '1,$ {
# introduce per-character state
s/\(.\)/\1_/g
# mark string literals
s/"_\(\(\([^"\\]_\|\\_._\)\)*\)"_/"B\1"E/g
# wipe out chars before string literals
:b s/._\(.\)B/ B\1B/g ; t b
# wipe out chars after string literals
:e s/\(.\)E._/\1E E/g ; t e
# remove per-character state
s/\(.\)./\1/g
# get rid of escape sequences
s/\\./ /g
}'
使用此实验性deformatter需要您自担风险。 在处理文件之前备份文件。 (deformatter中的错误可能会损坏拼写检查的文件。 请参见ispell手册页: 程序必须为输入的每个字符生成恰好一个输出字符,否则ispell将失去同步并损坏输出文件。 )