Splitting Concatenated Words in Input File with Words from a Master File


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Splitting Concatenated Words in Input File with Words from a Master File
# 15  
Old 02-23-2011
Hi Chubler XL,

I have modified the code again (above), can you give it a test? thanks!
# 16  
Old 02-23-2011
I get core dump if input file has a blank line in it:

Code:
assertion "(n->flags & WSTRCUR) == 0" failed: file "../gawk-3.1.8/field.c", line 217, function: rebuild_record
Aborted (core dumped)

# 17  
Old 02-23-2011
Hi Chubler_XL,
Many thanks, but the code still does not handle residue. I gave it as sample:
LOOKUP
Code:
prasad
manian
raghava
rajendra
subramanian

INPUT:
Code:
rajendraprasadsubramaniam
perisubramaniam
rajendraperisubramaniam

where peri was a "residual element".
The output was
Code:
Rajendra prasad subramaniam
Perisubramaniam
Rajendra perisubramaniam

showing that peri was attached to one of the two strings. Any way around this problem ?
Best regards and thanks,

Gimley

Last edited by Franklin52; 02-24-2011 at 03:33 AM.. Reason: Please use code tags
# 18  
Old 02-23-2011
I guess the problem is the word "subramanian" in the lookup file, it should be "subramaniam", is it right?
This User Gave Thanks to yinyuemi For This Post:
# 19  
Old 02-23-2011
Yes, lol just found it myself and was posting the same thing.

Gimley, did you read my warning on post #14 the solution still might not be 100% accurate.

Perhaps some sort of least-cost analysis of each replacement could improve the results, I would involve recursive code and may be a fair bit slower.
This User Gave Thanks to Chubler_XL For This Post:
# 20  
Old 02-24-2011
Sorry for goof-up. I have been up since 4.00 a.m. and i guess somewhere the goofup did occur.
Sorry for the bother. I tested the code and it is working. Will test it against a huge file and let you all know the results

Many thanks once again for the timely help,

Gimley

---------- Post updated 02-24-11 at 04:43 AM ---------- Previous update was 02-23-11 at 09:38 PM ----------

Dear Chubler_XL,
I have safely tested the script and it runs beautifully. I have also digested the thinking and the commands. One last request. Is it possible to add to the code a flag when a residual element is detected i.e. an element which is not found in the dictionary. This would help me speed up analysis of the data.
Sorry for imposing once again and many many thanks for all the help given. It has been a great learning experience.
p.s.
I am posting the "final" code which is working:

NR==FNR{a[$1]; next}
function lsr(c,p) {
for(p=length(c);p;p--)
if(tolower(substr(c,1,p)) in a) break;
if (p) return substr(c,1,p);
return "";
}
{while(length) {
s=lsr($0);
while (!s && length) {
printf substr($0,1,1);
$0=substr($0,2);
s=lsr($0);
if (s) printf " ";
}
printf "%s ", s;
$0=substr($0,length(s)+1)
}
printf "\n"; }
# 21  
Old 02-24-2011
How about a ! on either side of a residual:

Code:
NR==FNR{a[$1]; next}
function lsr(c,p) {
    for(p=length(c);p;p--)
        if(tolower(substr(c,1,p)) in a) break;
    if (p) return substr(c,1,p);
    return "";
}
{while(length) {
    s=lsr($0);
    if (!s) printf "!";
    while (!s && length) {
        printf substr($0,1,1);
        $0=substr($0,2);
        s=lsr($0);
        if (s) printf "! ";
    }
    printf "%s ", s;
    $0=substr($0,length(s)+1)
}
printf "\n"; }

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace particular words in file based on if finds another words in that line

Hi All, I need one help to replace particular words in file based on if finds another words in that file . i.e. my self is peter@king. i am staying at north sydney. we all are peter@king. How to replace peter to sham if it finds @king in any line of that file. Please help me... (8 Replies)
Discussion started by: Rajib Podder
8 Replies

2. UNIX for Dummies Questions & Answers

Replace the words in the file to the words that user type?

Hello, I would like to change my setting in a file to the setting that user input. For example, by default it is ONBOOT=ON When user key in "YES", it would be ONBOOT=YES -------------- This code only adds in the entire user input, but didn't replace it. How do i go about... (5 Replies)
Discussion started by: malfolozy
5 Replies

3. Shell Programming and Scripting

Gawk gensub, match capital words and lowercase words

Hi I have strings like these : Vengeance mitt Men Vengeance gloves Women Quatro Windstopper Etip gloves Quatro Windstopper Etip gloves Girls Thermobite hooded jacket Thermobite Triclimate snow jacket Boys Thermobite Triclimate snow jacket and I would like to get the lower case words at... (2 Replies)
Discussion started by: louisJ
2 Replies

4. Shell Programming and Scripting

How count the number of two words associated with the two words occurring in the file?

Hi , I need to count the number of errors associated with the two words occurring in the file. It's about counting the occurrences of the word "error" for where is the word "index.js". As such the command should look like. Please kindly help. I was trying: grep "error" log.txt | wc -l (1 Reply)
Discussion started by: jmarx
1 Replies

5. Shell Programming and Scripting

Grepping a list of words from one file in a master database of homophones

Hello, I am sorry if the title is confusing, but I need a script to grep a list of Names from a Source file in a Master database in which all the homophonic variants of the name are listed along with a single indexing key and store all of these in an output file. I need this because I am testing... (4 Replies)
Discussion started by: gimley
4 Replies

6. Shell Programming and Scripting

Splitting concatenated words in input file with words from the same file

Dear all, I am working with names and I have a large file of names in which some words are written together (upto 4 or 5) and their corresponding single forms are also present in the word-list. An example would make this clear annamarie mariechristine johnsmith johnjoseph smith john smith... (8 Replies)
Discussion started by: gimley
8 Replies

7. Shell Programming and Scripting

Splitting Concatenated Words With Largest Strings First

hello, I had posted earlier help for a script for splitting concatenated words . The script was supposed to read words from a master file and split concatenated words in the slave/input file. Thanks to the help I got, the following script which works very well was posted. It detects residues by... (14 Replies)
Discussion started by: gimley
14 Replies

8. Shell Programming and Scripting

Awk splitting words into files problem

Hi, I am trying to split the words having the delimiter as colon ';' in to separate files using awk. Here's my code. echo "f1;f2;f3" | awk '/;/{c=sprintf("%02d",++i); close("out" c)} {print > "out" c}' echo "f1;f2;f3" | awk -v i=0 '/;/{close("out"i); i++; next} {print > "out"i}' But... (4 Replies)
Discussion started by: royalibrahim
4 Replies

9. 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

10. Shell Programming and Scripting

splitting words from a string

Hi, I have a string like this in a file, I want to retrive the words separated by comma's in 3 variables. like How do i get that.plz advice (2 Replies)
Discussion started by: suresh_kb211
2 Replies
Login or Register to Ask a Question