Find out the words, just for fun


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find out the words, just for fun
# 1  
Old 11-23-2009
Find out the words, just for fun

There is a spell game to find out the word which can be used between another two words, for example,

Code:
play   ______    table
hair    ______    ball

So missing word will be:

Code:
time  (playtime, timetable)
pin  (hairpin, pinball)

time and pin are also real word. Maybe there are not only one answer.

So my idea is, maybe we use dictionary files to do the game.

Code:
/usr/dict/words
or
/usr/share/dict/words

I am working on it, if you have any idea, please paste here.

the script should be run be this way:

Code:
spell_game play table

get the answer such as:

Code:
playtime, timetable

# 2  
Old 11-24-2009
just a start....

Code:
$ cat spell_game
#!/bin/bash

matches=`awk '
(/^ball/ || /ball$/) && !(/^ball$/||/s$/||/ing$/||/ed$/||/er$/) {
  gsub(/ball/,"")
  if(length($0)>1) {print $0}
  $0=""
}

(/^hair/ || /hair$/) && !(/^hair$/||/s$/||/ing$/||/ed$/||/er$/) {
  gsub(/hair/,"")
  if(length($0)>1) {print $0}
  $0=""
}' /usr/share/dict/words | sort -d | uniq -d`

matchcnt=`echo "$matches" | wc -l | awk '{print $1}'`

if [ ${matchcnt} -eq 0 ]; then
  echo "Sorry, I can't solve this one."
  exit 2
fi

if [ ${matchcnt} -eq 1 ]; then
  echo There was "${matchcnt}" possibility: "${matches}"
else
  echo There were "${matchcnt}" possibilities: "${matches}"
  exit 0
fi


Last edited by mkastin; 11-24-2009 at 03:23 AM..
# 3  
Old 11-24-2009
Done.

Code:
$ cat spell_game
#!/usr/bin/bash

WORD="/usr/dict/words"

for i in `grep "^$1." $WORD`
do
   KEY="${i#$1}"
   NEW="${i#$1}$2"
   grep "^$NEW$" $WORD > /dev/null && echo "$i, $NEW"
done
$ ./spell_game play table
playtime, timetable
$ ./spell_game hair ball
hairpin, pinball
$ ./spell_game high lay
highway, waylay

# 4  
Old 11-24-2009
man, why must I always do things in the strangest of ways....
# 5  
Old 11-24-2009
Quote:
Originally Posted by mkastin
man, why must I always do things in the strangest of ways....
Mate, that's fine. That's the reason we come here to share and learn each other.
# 6  
Old 11-25-2009
something like below, but i am concerning on the performance.Smilie

Code:
for i in `egrep '^play.*' /usr/dict/words | sed 's/^play//' `;do
egrep "^${i}table$" /usr/dict/words > /dev/null
if [ $? -eq 0 ];then
echo $i
fi
done

# 7  
Old 11-25-2009
Quote:
Originally Posted by summer_cherry
something like below, but i am concerning on the performance.Smilie

Code:
for i in `egrep '^play.*' /usr/dict/words | sed 's/^play//' `;do
egrep "^${i}table$" /usr/dict/words > /dev/null
if [ $? -eq 0 ];then
echo $i
fi
done

Yes, get the answer.

You are perl guru, do it by perl? Smilie

I'd like to use $1 and $2 as input to get different pair of words. such as, if you run:

spell_game.pl fire day

what result can you get?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Find duplicate words using sed

I have following statement and I want to find duplicate word using sed command. How is it possible? "detect string and remove the duplicate string" There could be many statements in a file and each line may have duplicate word. Thanks! (1 Reply)
Discussion started by: jnrohit2k
1 Replies

2. Shell Programming and Scripting

Find common words

Hi, I have 10 files which needs to be print common words from those all files. Is there any command to find out. (2 Replies)
Discussion started by: munna_dude
2 Replies

3. Shell Programming and Scripting

Find Multiple words in a file

Hi all, I have trouble in finding the multiple word in .txt file. Please help me with any solution. I have 10,000 .txt files and in each file i have to search specific word but more than one, like (data, machine learning, clustering) and all these keywords should be case insensitive because... (3 Replies)
Discussion started by: XXLMMN
3 Replies

4. Shell Programming and Scripting

Shell script to find out words, replace them and count words

hello, i 'd like your help about a bash script which: 1. finds inside the html file (it is attached with my post) the code number of the Latest Stable Kernel, 2.finds the link which leads to the download location of the Latest Stable Kernel version, (the right link should lead to the file... (3 Replies)
Discussion started by: alex83
3 Replies

5. Emergency UNIX and Linux Support

Find two words and join together in one file

Hi, I have a huge text file like below , I need to select only lines having line Fatal joined with id. like below i want the line to be Fatal Error for input record 25 is id = 543523. Waiting for your help. -----Original Message----- Acceptance with warnings for input record 24. 001 tag... (13 Replies)
Discussion started by: umapearl
13 Replies

6. Shell Programming and Scripting

how to find number of words

please help me for this "divide the file into multiple files containing no more than 50 lines each and find the number of words of length less than 5 characters" (3 Replies)
Discussion started by: annapurna konga
3 Replies

7. UNIX for Dummies Questions & Answers

how to find common words and take them out from two files

Hi, everyone, Let's say, we have xxx.txt A 1 2 3 4 5 C 1 2 3 4 5 E 1 2 3 4 5 yyy.txt A 1 2 3 4 5 B 1 2 3 4 5 C 1 2 3 4 5 D 1 2 3 4 5 E 1 2 3 4 5 First I match the first column I find intersection (A,C, E), then I want to take those lines with ACE out from yyy.txt, like A 1... (11 Replies)
Discussion started by: kaixinsjtu
11 Replies

8. Shell Programming and Scripting

FInd the String between Two words

Hi I would like know how can write a script for find a string between two words. My input like this: a1 IN a1a1a1a1a1a1 OUT b1 IN b1b1b1b1b1b1 OUT c1 IN c1c1c1c1c1c1 OUT . . . now my out put like: a1a1a1a1a1a1 b1b1b1b1b1b1 c1c1c1c1c1c1 please help on this. (6 Replies)
Discussion started by: koti_rama
6 Replies

9. Shell Programming and Scripting

find files with 2 or more words

I'm trying to find files that contain two or more specific words (e.g. all files with both "John" and "Mary" in them but not necessarily on the same line) but I don't know how to go about it. Maybe something like grep to find files with the first word, then grep the resulting set of files to find... (1 Reply)
Discussion started by: Anita
1 Replies

10. Shell Programming and Scripting

find words with grep....

I have a .txt file which contains several lines of text. I need to write a script program using grep or any other unix tool so as to detect part of the text (words) between / / that begin with the symbol ~. For example if somewhere in the text appears a webpage address like... (8 Replies)
Discussion started by: chrisxgr
8 Replies
Login or Register to Ask a Question