Trovare e correggere errori di battitura su Linux

Se vuoi controllare un file di testo per errori di battitura, Linux può aiutarti.

Ha un paio di strumenti e una serie di comandi che possono evidenziare gli errori inclusi Guarda e incantaree condividerò uno script che ho messo insieme di recente che cerca errori di battitura usando il sistema parole file.

Usando l’incantesimo

Guarda è uno strumento molto intelligente che indicherà gli errori di battitura e renderà sorprendentemente facile risolverli. Quando viene utilizzato per apportare modifiche a un singolo file, inverte i colori del testo e dello sfondo per evidenziare le parole errate. Dovresti avviarlo con un comando come questo:

$ aspell check myfile

Se Guarda non rileva errori di battitura, esce semplicemente. In caso contrario, si aprirà con un display che contiene il testo del file (o solo le righe superiori a seconda della lunghezza del file) seguito da un elenco di parole sostitutive suggerite e, sotto, un elenco dei comandi che è possibile eseguire. Il primo errore di battitura (o sospetto errore di battitura) verrà visualizzato con i colori del testo e dello sfondo invertiti come mostrato di seguito.

I wish that I could type with my eyes closed and never make a mistake. I don't
like typoze and I think I run into them far more often than I want.

1) depose                               6) typo              <===== suggested words
2) typos                                7) topaz
3) typo's                               8) topees
4) types                                9) type's
5) type                                 0) typed
i) Ignore                               I) Ignore all        <===== commands
r) Replace                              R) Replace all
a) Add                                  l) Add Lower
b) Abort                                x) Exit

?

Se vuoi sostituire l'errore di battitura con una delle parole elencate, usa la tastiera per digitare la cifra a sinistra della parola che vuoi selezionare. Se è l'unico errore di battitura nel file, Guarda effettuerà la modifica e uscirà. In caso contrario, passerà alla parola errata successiva.

Puoi anche sostituire un errore di battitura digitando "r" e quindi digitando la parola che desideri utilizzare per sostituirlo. Se è una parola che potrebbe essere ripetuta, puoi invece premere "R" e sostituire tutte le istanze della parola nel file. Puoi anche decidere di ignorare cosa Guarda ritiene un errore di battitura Dopotutto, potrebbe essere un termine che Guarda semplicemente non riconosce o un acronimo. Puoi farlo un'istanza alla volta digitando "i" o come gruppo digitando "I".

Come precauzione, Guarda crea un file di backup (ad es. miofile.bak) del file che stai controllando in modo da poter recuperare i tuoi errori di battitura se lo ritieni necessario e riparare le parole che potresti aver modificato per errore.

Puoi anche usare Guarda per controllare l'ortografia di un gruppo di parole. Digita "aspell -a" come mostrato di seguito e puoi digitare una parola e vedere l'elenco delle sostituzioni suggerite. Se Guarda risponde con un asterisco

$ aspell -a
@(#) International Ispell Version 3.1.20 (but really Aspell 0.60.8)
typoze
& typoze 17 0: depose, typos, typo's, types, type, typo, topaz, topees, type's, typed, tapes, topee, Topsy, doze, pose, tape, tape's

typos
*
^C

la parola è stata scritta correttamente.

Digitare ^C per uscire come mostrato sopra.

Usando l'incantesimo

$ enchant -l myfile
typoze
typoze

Uno strumento chiamato "incanta" elencherà le parole che considera errori di battitura con un comando come questo:

$ enchant -l myfile | uniq -c
      2 typoze

Se ti aspetti molti errori di battitura, puoi usare un comando come quello qui sotto per dirti quante volte ogni errore di battitura appare nel file:

$ enchant -a myfile | grep :
& typoze 1 5: typo
& typoze 1 6: typo

Per visualizzare le sostituzioni suggerite, eseguire un comando come questo:

Costruire uno script di controllo ortografico

Ho messo insieme uno script bash per vedere quanto bene potevo controllare le parole in un file rispetto al file delle parole di Linux (/usr/share/dict/words sul mio sistema). Il compito si è rivelato un po' più complicato di quanto mi aspettassi.

$ findTypos myfile
typoze
typoze

Eseguo lo script in questo modo:

#!/bin/bash

if [ $# == 0 ]; then
    echo -n "file: "
    read file
else
    file=$1
fi

while read -ra line;
do
    for word in "${line[@]}";
    do
        word=$(echo $word | tr '[:upper:]' '[:lower:]')
        word=`echo $word | tr -d '[.,?:!"]'` # punct doesn't work for this
        word=`echo $word | sed s/'s//| sed s/'s//`
        grep ^$word$ words >/dev/null || echo $word
    done;
done < $file

Lo script contiene una serie di comandi per trovare e visualizzare un elenco delle parole errate. Il primo gruppo di comandi verifica che sia stato fornito un nome file come argomento. In caso contrario, ne richiede uno. Lo script esegue quindi ogni parola nel file ed esegue a tr comando per cambiarlo in tutto minuscolo per evitare problemi con le parole in maiuscolo. Quindi utilizza un secondo tr [:punct:] comando per rimuovere la maggior parte dei segni di punteggiatura in modo che punti, punti interrogativi, ecc. non aggrapparti alle parole che devono essere controllate. non ho usato

perché avrebbe rimosso l'apostrofo in parole come "non è", ma ho rimosso separatamente le "s" possessive alla fine delle parole. L'ultimo passaggio è stato cercare la parola nel file delle parole. I caratteri ^ e $ indicano a grep di trovare solo la parola specificata, non le parole che potrebbero includere quella parola.

Lo script, che chiamo "findTypos", trova errori di battitura, ma non tenta di risolverli o suggerisce parole sostitutive.

Incartare

Rilevare le parole errate nei tuoi file di testo può essere utile, soprattutto se stai preparando il tuo rapporto settimanale e il tuo capo è un pignolo per la grammatica. Fortunatamente, Linux fornisce diversi modi per aiutare con questo.

Copyright © 2022 IDG Communications, Inc.

Leave a Comment

Your email address will not be published. Required fields are marked *