Sponsored Content
Top Forums Shell Programming and Scripting Shell Sript - Spell Checker Assign Post 302144714 by ccfc1986 on Friday 9th of November 2007 10:46:02 AM
Old 11-09-2007
Shell Sript - Spell Checker Assign

Hi Folks. I am currently working on a script that has to spell check a file and print the output to the screen in 2 columns like this.

INCORRECT CORRECTION
whio who
weahter weather

The file will allow the user to override the ispell command and save any 'incorrect' words as 'correct' into a memory file which would then be used in any other runs of the script (as a dictionary file).

The code i currently have has a problem with it... and i cant figure it out for the life of me. Here is the code/script that i have written so far.


Code:
#!/bin/sh
# script that will spell check a file

#if user tries to quit, will say so, then quit on second attempt
trap "echo You are trying to exit; exit" 2


array=`ispell -l -p $HOME/memory.txt < $1`

correct=()
incorrect=""
let counter=1

for i in $array; do
        read -p "$i is mispelled. Press "Enter" to keep spelling, or type a correction here: " correction
        if [[$correction=""]] ; then
                echo $i >> $HOME/memory.txt
        else
                $correct[$counter]=$correction
        fi
let counter+=1
done

#prints the information
echo "CORRECTION       INCORRECT"
let count=1
for i in $array; do
        echo ${correct[$count]}        $i
let count+=1
done

For this code i get this output while runing:


sh-3.1$ ./wordspell testfile
hellio is mispelled. Press Enter to keep spelling, or type a correction here: hello
./wordspell: line 14: [[hello=]]: command not found
./wordspell: line 17: [1]=hello: command not found
whio is mispelled. Press Enter to keep spelling, or type a correction here: who
./wordspell: line 14: [[who=]]: command not found
./wordspell: line 17: [2]=who: command not found
wheter is mispelled. Press Enter to keep spelling, or type a correction here: weather
./wordspell: line 14: [[weather=]]: command not found
./wordspell: line 17: [3]=weather: command not found
CORRECTION INCORRECT
hellio
whio
wheter

I was wondering how i could sort out the line 14/17 errors. I have thought it would be something like missing () or {} in the array. But still no luck. Any ideas? Also, as you can see i want to print the correction, and the incorrect word (i have 2 arrays set, correct and incorrect which should contain the words for each). How would i get them to print out in columns like i have shown? Once i have this, i have another couple of things to code which im unsure of, but i will try after i get thsi first obstacle out of the way.

Thanks in advance
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script syntax checker

I have a rather big script that i have written in ksh and it is falling over in two places with a 'test argument' error. I know this usually means that the if statement is not correct, but it is fine. I have looked through the rest of the script for any odd brackets or ` marks, but can't see... (2 Replies)
Discussion started by: handak9
2 Replies

2. Shell Programming and Scripting

spell checker program

2.I need shell script to list all the 'words' in a given file (text) that are not listed in a specified dictionary. Let us call this utility 'spell-check'. 'spell-check' will be called as follows. $ spell-check letter Lucent UNIX UNIX OS a $ dictionary words are listed in lower... (2 Replies)
Discussion started by: ksjanakan
2 Replies

3. UNIX for Dummies Questions & Answers

Shell Sript

Hi All, I have four different files in four different directories. Each file contains exactly the same format logincode Forename Surname TutGroup Mark Basically i want to grab all the marks from each file and put them onto the end of one login code by using a shell script. I can grab all... (3 Replies)
Discussion started by: jazz8146
3 Replies

4. Shell Programming and Scripting

convert the below perl sript to shell script

perl script: my $logdir = '/smp/dyn/logfiles/fsm/mp/mp'; $logdir = $logdir ."/mp${toDate}*"; i tried to make it..as below .. but not working .. date +%m%d%y logdir = /smp/dyn/logfiles/fsm/mp/mp logdir=$logdir/mp"$date" but it was not working..... can someone please help me out in... (1 Reply)
Discussion started by: mail2sant
1 Replies

5. Shell Programming and Scripting

Need your help for the spell checker in unix or python

Hi, Want to know is there any command to correct the spelling using unix or python? Unix command "spell" will give only the list of the incorrect words . But i want the output along with the corrected word . Thanks in advance (1 Reply)
Discussion started by: vini
1 Replies

6. Homework & Coursework Questions

Unix Spell Checker Assignment

hello, im a new member to the forum and im doing a assignment for unix command and we have to make a spell checker and im a little confused about the directions .. ill post them below and continue.. Northern Illinois University CSCI 330-Unix Command Write a shell script that implements a... (1 Reply)
Discussion started by: bravens52
1 Replies

7. Homework & Coursework Questions

spell checker script

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: When "niuspell" is invoked from the command line it reads "file" and checks it for spelling of the words it... (1 Reply)
Discussion started by: Jeffthrow5
1 Replies

8. Shell Programming and Scripting

compare dates using shell sript

I have 2 date feilds 2011-05-13:18:45 2011-05-13:18:30 I need to compare them and say its OK/NOK I tried this but dint work. systime=2011-05-13:18:45 shubtime=2011-05-13:18:30 if then echo" OK" else echo "NOK" fi In this its not same so the o/p should be NOK (2 Replies)
Discussion started by: LavanyaP
2 Replies

9. Shell Programming and Scripting

Help with Bash Shell Script Spell Checker program.

I have a majority of this problem done but seem to be struggling on the last couple of steps. Here is the whole problem to help you guys get a better understanding. Write a shell script that implements a simple spell checker. The filename you will use for your script will be your Z-id followed... (1 Reply)
Discussion started by: DsmRacer2k14
1 Replies

10. Debian

Getting a better spell checker

Guys I am new to Linux in general and want to know what is the use of the following files-: /usr/share/dict/words /usr/share/dict/words.pre-dictionaries-common Are they used by the spell checker to find potential typos ? If so are there any better larger word lists out there ? I am sure... (2 Replies)
Discussion started by: sreyan32
2 Replies
SPELL(1)						      General Commands Manual							  SPELL(1)

NAME
spell, spellin, spellout - find spelling errors SYNOPSIS
spell [ -v ] [ -b ] [ -x ] [ -d hlist ] [ -s hstop ] [ -h spellhist ] [ file ] ... spellin [ list ] spellout [ -d ] list DESCRIPTION
Spell collects words from the named documents, and looks them up in a spelling list. Words that neither occur among nor are derivable (by applying certain inflections, prefixes or suffixes) from words in the spelling list are printed on the standard output. If no files are named, words are collected from the standard input. Spell ignores most troff, tbl and eqn(1) constructions. Under the -v option, all words not literally in the spelling list are printed, and plausible derivations from spelling list words are indi- cated. Under the -b option, British spelling is checked. Besides preferring centre, colour, speciality, travelled, etc., this option insists upon -ise in words like standardise, Fowler and the OED to the contrary notwithstanding. Under the -x option, every plausible stem is printed with `=' for each word. The spelling list is based on many sources. While it is more haphazard than an ordinary dictionary, it is also more effective with proper names and popular technical words. Coverage of the specialized vocabularies of biology, medicine and chemistry is light. The auxiliary files used for the spelling list, stop list, and history file may be specified by arguments following the -d, -s, and -h options. The default files are indicated below. Copies of all output may be accumulated in the history file. The stop list filters out misspellings (e.g. thier=thy-y+ier) that would otherwise pass. Two routines help maintain the hash lists used by spell. Both expect a set of words, one per line, from the standard input. Spellin com- bines the words from the standard input and the preexisting list file and places a new list on the standard output. If no list file is specified, the new list is created from scratch. Spellout looks up each word from the standard input and prints on the standard output those that are missing from (or present on, with option -d) the hashed list file. For example, to verify that hookey is not on the default spelling list, add it to your own private list, and then use it with spell, echo hookey | spellout /usr/dict/hlista echo hookey | spellin /usr/dict/hlista > myhlist spell -d myhlist huckfinn FILES
/usr/dict/hlist[ab] hashed spelling lists, American & British, default for -d /usr/dict/hstop hashed stop list, default for -s /dev/null history file, default for -h /tmp/spell.$$* temporary files /usr/libexec/spell SEE ALSO
deroff(1), sort(1), tee(1), sed(1) BUGS
The spelling list's coverage is uneven; new installations will probably wish to monitor the output for several months to gather local addi- tions. British spelling was done by an American. 7th Edition October 22, 1996 SPELL(1)
All times are GMT -4. The time now is 03:32 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy