2012-09-17 6 views
8

Tengo un archivo de texto grande que contiene muchas palabras en inglés de ortografía incorrecta. Estoy buscando una manera de editar este archivo usando un corrector ortográfico de línea de comando en Linux. Encontré algunas formas de hacerlo, pero de acuerdo con mis búsquedas, todas ellas funcionan de manera interactiva. Quiero decir, al ver una palabra faltante/mal escrito, sugieren algunas correcciones para el usuario y él/ella debe elegir uno de ellos. Como mi archivo es bastante grande y contiene muchas palabras incorrectas, no puedo editarlo de esta manera. Estoy buscando una manera de decirle al corrector ortográfico que reemplace todas las palabras incorrectas con el primer candidato. ¿Hay alguna manera de hacer esto? ¿Tiene el hechizo (a/hun) alguna opción para hacerlo?Verificación ortográfica de un archivo mediante la línea de comandos, no interactiva

Atentamente.

+0

GNU emacs hechizo modo de verificación parece ajustarse a la ley ya que se puede REPLAC e todas las ocurrencias mal escritas a la vez. –

+0

Entonces, ¿tengo que abrir el archivo en emacs? – Hakim

+0

Sí, pero solo una vez. –

Respuesta

5

Si no lo necesita reemplazar cada palabra equivocada, sino simplemente señalar los errores y sugerencias de impresión de una manera no interactiva, puede utilizar ispell:

$ ispell -a < file.txt | grep ^\& > errors.txt 

por desgracia no soy consciente de cualquier utilidad estándar de Linux que hace lo que está solicitando desde la línea de comandos, aunque la sugerencia de emacs en los comentarios anteriores se acerca.

5

Usted puede experimentar con los comandos como los siguientes:

yes 0 | script -c 'ispell text.txt' /dev/null 

o:

yes 1 | script -c 'aspell check text.txt' /dev/null 

Pero hay que tener en cuenta que los resultados pueden ser pobres, incluso para las cosas simples:

$ echo The quik broown fox jmps over the laazy dogg > text.txt 
$ yes 0 | script -c 'ispell text.txt' /dev/null 
Script started, file is /dev/null 
Script done, file is /dev/null 
$ cat text.txt 
The quick brown fox amps over the lazy dog 

Parece ser aún peor con Aspell, así que probablemente sea mejor ir con ispell.

Necesita el comando script porque algunos comandos como ispell no desean tener un script. Normalmente se canaliza el resultado de yes 0 a un comando para simular pulsando la tecla "0" todo el tiempo, pero algunos comandos detect siendo guión y se niegan a cooperar:

$ yes 0 | ispell text.txt 
Can't deal with non-interactive use yet. 

Afortunadamente, pueden ser engañados con el comando script:

$ yes 0 | script -c 'ispell text.txt' /dev/null 
Script started, file is /dev/null 
Script done, file is /dev/null 

se puede utilizar otro archivo que no sea/dev/null para registrar la salida:

$ yes 0 | script -c 'ispell text.txt' out.txt 
Script started, file is out.txt 
Script done, file is out.txt 
$ cat out.txt 
Script started on Tue 02 Feb 2016 09:58:09 PM CET 

Script done on Tue 02 Feb 2016 09:58:09 PM CET 
Cuestiones relacionadas