Choose a single word from a wordlist by matching the letters it contains?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Choose a single word from a wordlist by matching the letters it contains?
# 1  
Old 03-13-2010
Question Choose a single word from a wordlist by matching the letters it contains?

Hi, I have a text file with 1500 words. Could it be a script that will keep the words that only have all these letters:
n i o m s c t a
If you could show me the way I would be greatful!
# 2  
Old 03-13-2010
Can you show example input file and desired output?
# 3  
Old 03-13-2010
Consider regular expressions:
^[niomscta]+$ This is a character class that contains just these letters made of one or more letters.

Code:
    grep   '^[niomscta]+$' wordfile


Last edited by jim mcnamara; 03-13-2010 at 06:28 AM.. Reason: cannot type
# 4  
Old 03-13-2010
Something like this?

Code:
perl -lane 'print join " ", grep { /\b[niomscta]+\b/ } (split / /);  ' file

Code:
/home/usr1 >cat file
sdafsa fljds dfs dsf niomscta   nio msd
sad nidso scata niow nioscata
sdasda sdjf niom
miom
fdsssdsf   sct
df

/home/usr1 >perl -lane 'print join " ", grep { /\b[niomscta]+\b/ } (split / /,$_);  ' file
niomscta nio
scata nioscata
niom
miom
sct

# 5  
Old 03-13-2010
Well the wordlist has words like
htmlSmilie
121212
131313
123123
654321
8675309
666666
696969
888888
1234567
21122112
12345678
asdfjkl;
hal9000
bond007
ncc1701d
ncc1701e
ncc1701
thx1138
a12345
abcd1234


What I need is to find the word that is developed by the letters "n i o m s c t a" like "monastic".I don't need more or less letters (like "maso" or "monasticasctio")

---------- Post updated at 10:35 AM ---------- Previous update was at 10:23 AM ----------

I thought something like this:
#!/bin/sh
lol=`grep '^[n]' /home/alex/Desktop/wordlist.txt`
echo $lol > /home/alex/Desktop/lol
lol1=`grep '^[i]' /home/alex/Desktop/lol`
echo $lol1 > /home/alex/Desktop/lol1
lol2=`grep '^[o]' /home/alex/Desktop/lol1`
echo $lol2 > /home/alex/Desktop/lol2
lol3=`grep '^[m]' /home/alex/Desktop/lol2`
echo $lol3 > /home/alex/Desktop/lol3
lol4=`grep '^[s]' /home/alex/Desktop/lol3`
echo $lol4 > /home/alex/Desktop/lol4
lol5=`grep '^[c]' /home/alex/Desktop/lol4`
echo $lol5 > /home/alex/Desktop/lol5
lol6=`grep '^[t]' /home/alex/Desktop/lol5`
echo $lol6 > /home/alex/Desktop/lol6
lol7=`grep '^[a]' /home/alex/Desktop/lol6`
echo "Your word is: $lol7"

I don't know if this thought is correct...Is it?
# 6  
Old 03-13-2010
You can still use code snippet provided..However, the shortened code is below for your requirement.

Code:
perl -lane 'print if (grep {/\b[niomscta]+\b/} $_);  ' file

# 7  
Old 03-13-2010
Quote:
Originally Posted by dennis.jacob
You can still use code snippet provided..However, the shortened code is below for your requirement.

Code:
perl -lane 'print if (grep {/\b[niomscta]+\b/} $_);  ' file

{ perl -lane 'print if (grep {/\b[niomscta]+\b/} $_); ' file } doesn't really suits me. I want to take words from the wordlist with 8 characters (niomscta=8 chars) that contain ALL the letters : n i o m s c t a
Examples:
atcsmoin
oinmatcs
matcsoin etc...
Your command { perl -lane 'print if (grep {/\b[niomscta]+\b/} $_); ' file }
has this output:
Code:
alex@lol-pc:~$ perl -lane 'print if (grep {/\b[niomscta]+\b/} $_);  ' /home/alex/Desktop/wordlist.txt
montana
monica
macintos
action
tomcat
cannon
tinman
nissan
station
samson
tattoo
cccccc
sonics
cosmos
mission
tintin
moomoo

that doesn't suits me at all. I want to do a kind of unscrimbling (hope I wrote it correctly) but not from all the existing words! Only from the wordlist.txt's words!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Performance assessment of using single or combined pattern matching

Hi, I want to know which pattern matching technique will be giving better performance and quick result. I will be having the patterns in a file and want to read that patterns and search through a whole file of say 70 MB size. whether if i initially create a pattern matching string while... (7 Replies)
Discussion started by: ananan
7 Replies

2. Shell Programming and Scripting

Bash directory loop, but only choose those folders with specific word in it

Hello, how in bash i can get directory loop, but only choose those folders with specific word in it, so it will only echo those with specific word #!/bin/bash for filename in /home/test/* do if ; then echo $filename; fithx! (4 Replies)
Discussion started by: ZerO13
4 Replies

3. Shell Programming and Scripting

Creating single pattern for matching multiple files.

Hi friends, I have a some files in a directory. for example 856-abc 856-def 851-abc 945-def 956-abc 852-abc i want to display only those files whose name starts with 856* 945* and 851* using a single pattern. i.e 856-abc 856-def 851-abc 945-def the rest of the two files... (2 Replies)
Discussion started by: Little
2 Replies

4. Shell Programming and Scripting

Word matching and write other data

Hi all, I have 7 words CAD CD HT RA T1D T2D BD Now I have 1 file which contain data in large number of rows and columns from 2 nd column onwards it contain any of these 7 words or may be more than one words among above 7 words: these 7 names are present in starting from 2nd ... (7 Replies)
Discussion started by: manigrover
7 Replies

5. Shell Programming and Scripting

Matching single quote in a regular expression

I trying to match the begining of the following line in a perl script with a regular expression. $ENV{'ORACLE_HOME'} I tried this regluar expession: /\$ENV\{\'ORACLE_HOME\'\}/ Instead of match, I got a blank prompt > It seems to be a problem with the single quote. If I take it... (11 Replies)
Discussion started by: JC9672
11 Replies

6. Shell Programming and Scripting

Extract single word from lines

Hi I have a huge line like the following: this word and many other words AA122134 other and other words and AA224466 and other other other other word AA667210 words I only want extract the words AA?????? and put them in a column, how could i do ? thx so much! (7 Replies)
Discussion started by: AdminLew
7 Replies

7. UNIX for Dummies Questions & Answers

grep only word matching the pattern

Hi gurus, A file contains many words in format "ABC.XXXX.XXXX.X.GET.LOG" (X->varying). Now my shell script want this list (only words in formatABC.XXXX.XXXX.X.GET.LOG ) to continue the process. Pls help me. Thanks, Poova. (8 Replies)
Discussion started by: poova
8 Replies

8. UNIX for Dummies Questions & Answers

Print last 2 letters in a word

Hi, I have a file which has the below information tm.orbit72 tm.orbit12 tm.orbit78 tm.orbitye I want to print the last two letters in the above file. Please let me know how can i do that. (6 Replies)
Discussion started by: Krrishv
6 Replies

9. Shell Programming and Scripting

Matching multiples of a single character using sed and awk

Hi, I have a file 'imei_01.txt' having the following contents: $ cat imei_01.txt a123456 bbr22135 yet223 where I want to check whether the expression 'first single alphabet followed by 6 digits' is present in the file (here it is the first record 'a123456') I am using the following... (5 Replies)
Discussion started by: royalibrahim
5 Replies

10. Shell Programming and Scripting

matching a letter in a word

hi, if i have a string of letters and seperatly i have a single letter. how do i check whether that specific letter is in my string aswell? any ideas? (2 Replies)
Discussion started by: Furqan_79
2 Replies
Login or Register to Ask a Question