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 - check text for spelling errors

Syntax
       spell [-v] [-b] [-x] [-d hlist] [+local-file] [-s hstop] [-h spellhist] [file...]

       spellin [list]

       spellout [-d] list

Description
       The command collects words from the named documents, and looks them up in a spelling list.  Words that are not on the spelling list and are
       not derivable from words on the list (by applying certain inflections, prefixes or suffixes) are printed on the	standard  output.   If	no
       files are specified, words are collected from the standard input.

       The command ignores most and constructions.

       Two  routines help maintain the hash lists used by Both expect a set of words, one per line, from the standard input.  The command combines
       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  speci-
       fied,  a  new  list  is generated.  The command 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
       echo  hookey  |	spellout  /usr/dict/hlista
       echo  hookey  |	spellin  /usr/dict/hlista  >  myhlist
       spell  -d  myhlist <filename>

Options
       -v	      Displays words not found in spelling list with all plausible derivations from spelling list.

       -b	      Checks  data  according  to British spelling.  Besides preferring centre, colour, speciality, travelled, this option insists
		      upon -ise instead of -ize in words like standardise.

       -x	      Precedes each word with an equal sign (=) and displays all plausible derivations.

       -d hlist       Specifies the file used for the spelling list.

       -h spellhist   Specifies the file used as the history file.

       -s hstop       Specifies the file used for the stop list.

       +local-file    Removes words found in local-file from the output of the command.  The argument local-file is the name of a file provided by
		      the  user  that contains a sorted list of words, one per line.  With this option, the user can specify a list of words for a
		      particular job that are spelled correctly.

       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 (for example, thier=thy-y+ier) that would otherwise pass.

Restrictions
       The coverage of the spelling list is uneven; new installations will probably wish to monitor the output for several months to gather  local
       additions.

       The command works only with ASCII text files.

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/lib/spell

See Also
       deroff(1), sed(1), sort(1), tee(1)

																	  spell(1)
All times are GMT -4. The time now is 03:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy