2012-10-09 15 views
16

Tôi có một vài tệp tôi muốn kiểm tra chính tả. Thông thường, tôi sẽ mở các số này trong vim, chạy :set spell và thực hiện các thay đổi. Thật sự rất khó để mở tệp và kiểm tra thủ công nếu tôi đã bỏ lỡ bất kỳ từ nào kể từ lần kiểm tra cuối cùng.Làm thế nào để chạy kiểm tra chính tả trên nhiều tệp và hiển thị bất kỳ từ nào không chính xác trong tập lệnh shell?

Có cách nào tôi có thể chạy kiểm tra lỗi chính tả trên nhiều tệp và hiển thị bất kỳ từ được viết sai chính tả nào, cùng với tên tệp để tôi có thể chuyển và thay đổi chúng không? Tôi không muốn mở tất cả các tập tin, kiểm tra nếu nó "sạch", sau đó mở tiếp theo và lặp lại.

Tôi không thể tìm thấy bất kỳ tiện ích kiểm tra chính tả POSIX nào. Một số bản phân phối Linux dựa trên Red Hat được cho là có spell hoặc tương tự, nhưng tôi thích phương thức đa nền tảng (ish) hơn. Tôi biết vimcó thể kiểm tra chính tả - có cách nào kiểm tra chính tả mà không thực hiện tất cả theo cách thủ công không? Nó sẽ là tuyệt vời nếu tôi có thể shell-script một giải pháp.

Tôi đang chạy OS X, cho giá trị của nó.

Trả lời

20

Bạn có thể cài đặt aspell với Homebrew trên OS X. brew info aspell liệt kê các ngôn ngữ được hỗ trợ.

brew install aspell --lang=en,fi,jp 

aspell check mở một tập tin trong một kiểm tra chính tả tương tác:

for f in *.txt; do aspell check $f; done 

aspell list in tất cả các từ không được công nhận:

cat *.txt | aspell list | sort -u 

từ học kinh nghiệm được lưu trữ trong .aspell.en.pws theo mặc định. Bạn cũng có thể loại trừ các từ trong ~/Library/Spelling/en sau khi thêm personal_ws-1.1 en làm dòng đầu tiên.

aspell list --personal=$HOME/Library/Spelling/en 
3

Sử dụng aspell, điều này sẽ in mỗi tên tập tin sau đó là một danh sách sắp xếp các từ sai chính tả cùng với số lần chúng xảy ra:

for f in *.txt ; do echo $f ; aspell list < $f | sort | uniq -c ; done 
Các vấn đề liên quan