findword script


 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions findword script
# 1  
Old 06-29-2010
findword 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:

Script : findword
This script may be invoked as findword char myletters dictionary-file to find a few words (no more than 5) in the 'dictionary-file' that start with the character 'char' and contains the letters in the given word 'myletters'. for example, the command: findword m noel would return melon monel


3. The attempts at a solution (include all code and scripts):

Code:
while read line
do
 grep $1 | grep $2 | head -5 |
 sed 's/"[^$1]"//g' | sed 's/"[^$2]"//g'
done  < /usr/dict/words

Input: findword m noel
Output: immunoelectrophoresis

Desired Output: melon monel

The sed doesn't seem correct, but shows that I want to get rid of all occurances of chars in the word other than the m and noel. does [^$1] work as the ''not in range'' notation?

4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):

Villanova, PA, Nadi, CSC8700

Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).

Last edited by pludi; 06-30-2010 at 01:51 AM.. Reason: code tags, please...
# 2  
Old 06-30-2010
Quote:
that start with the character 'char' and contains the letters in the given word 'myletters'
Ambiguous question maybe?

Does only a word starting with "m" and with exactly four characters following which are an exact anagram of "noel" count as a match?
e.g. melon monel

Or does any word starting with "m" and containing all the characters from the string "noel" and "m" in any quantity with any other characters count as a match?
e.g. melanoma

Or some other interpretation?
# 3  
Old 07-01-2010
i read the question incorrectly to begin with, it is suppose to start with the char and have the remaining letters anywhere else in the word. i'm thinking it would be something like grep '^$1' | grep $2 though the grep '^$1' doesn't work with the $1 as the arg. ...
# 4  
Old 07-02-2010
Something like this: Notice the first grep does not have single quotes because this would stop the variable being expanded.
This script searches for words beginning with the prefix then checks the content character by character looking for a match on all the characters. As soon as it finds 5 matches it stops which is much more efficient than processing the whole file.
I don't know a suitable regular expression to match the content letters (though one may exist) ... but I'm not on your course!

Code:
prefix="$1"
content="$2"
hitcount=0
grep \^"${prefix}" /usr/dict/words | while read line
do
        found=""
        echo "${content}"|fold -1|while read content_char
        do
                found=`echo "${line}"|grep "${content_char}"`
                if [ -z "${found}" ]
                then
                        break
                fi
        done
        if [ ! -z "${found}" ]
        then
                hitcount=$((${hitcount} + 1))
                if [ ${hitcount} -gt 5 ]
                then
                        break
                fi
                echo "${line}"
        fi
done

Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question