There is a table containing some patterns like
Now, from the input stream, lets say we get an input field value as
X Y Z A B C.
We have to do pattern matching for this record using the following rules.
1) We check if the length of the input string matches with the length of any of the patterns in the pattern table. We select the first pattern from the patterns table for which the length matches.
2) Then we check that the corresponding characters in the input string and the pattern string match. Here an '_' or '*' in the pattern string mean that any character at the corresponding position in the input string is acceptable.
For ex - input string 'X Y Z A B C' will match with the first pattern in the patterns table '_ _ _ A B C'
3) Now, once a match is found in the patterns table, we implement the following logic to derive the output field.
a) For every '_' found in the pattern, we replicate the same character at that position as found in the input string. " For every '*' found in the matched pattern, we output a '*' only in the output string.
For example,
1)
Input : - 'X Y Z A B C' Matched Pattern : - ' _ _ _ A B C' Output : - 'X Y Z A B C'
2)
Input : - 'A Y Z R S T' Matched Pattern : - 'A _ _ * * * ' Output : - 'A Y Z * * *'
3)
Input : - 'A B C X Y Z' Matched Pattern : - 'A B C * * *' Output : - 'A B C * * *'
The patterns are stored in a patterns table in the database. While the input stream is read through a flat file.
Could you please suggest the best way to implement this logic through Unix scripting?
Thanks a lot for your help.
Moderator's Comments:
You have posted your examples clean and nice but in future use [code] and [/code]tags please, ty.
Last edited by zaxxon; 07-07-2010 at 01:48 AM..
Reason: code tags
Hi
I need to do a patten match between files .
I am new to shell scripting and have come up with this so far. It take 50 seconds to process files of 2mb size . I need to tune this code as file size will be around 50mb and need to save time.
Main issue is that I need to search the pattern from... (2 Replies)
Hi all!
Thanks for taking the time to view this!
I want to grep out all lines of a file that starts with pattern 1 but also does not match with the second pattern.
Example:
Drink a soda
Eat a banana
Eat multiple bananas
Drink an apple juice
Eat an apple
Eat multiple apples
I... (8 Replies)
The sample file:
dept1: user1,user2,user3
dept2: user4,user5,user6
dept3: user7,user8,user9
I want to match by '/^dept2.*/' but don't want to have substring 'dept2:' in output. How to compose such regex? (8 Replies)
'Hi
I'm using the following code to extract the lines(and redirect them to a txt file) after the pattern match. But the output is inclusive of the line with pattern match.
Which option is to be used to exclude the line containing the pattern?
sed -n '/Conn.*User/,$p' > consumers.txt (11 Replies)
Hi,
I am trying to get a result out of this but fails please help. Have two files /tmp/1 & /tmp/hosts.
/tmp/1
IP=123.456.789.01
WAS_HOSTNAME=abcdefgh.was.tb.dsdc
/tmp/hosts
123.456.789.01
I want this result in /tmp/hosts if hostname is already there dont want duplicate entry.
... (5 Replies)
All,
I have the following file:
--------------------------------------
#
# /etc/pam.d/common-password - password-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define the services... (2 Replies)
Hi all,
I'm looking for some help. I have a file (very long) that is organized like below:
>Cluster 0
0 283nt, >01_FRYJ6ZM12HMXZS... at +/99%
1 279nt, >01_FRYJ6ZM12HN12A... at +/99%
2 281nt, >01_FRYJ6ZM12HM4TS... at +/99%
3 283nt, >01_FRYJ6ZM12HM946... at +/99%
4 279nt,... (4 Replies)
Hi Folks,
I have the following requirement:
I have a file that is containing numerous queries. The tables name mentioned in the queries are in the following format : SchemaName.Tablename. e.g COPDB.TableName.
I need to take out all the COPDB.TableName pattern and write it to a different... (6 Replies)
Hi Folks,
I have the following requirement:
I have a file that is containing numerous queries. The tables name mentioned in the queries are in the following format : SchemaName.Tablename. e.g COPDB.TableName.
I need to take out all the COPDB.TableName pattern and write it to a different... (0 Replies)
Hi,
I have file 1.txt with following entries as shown:
0152364|134444|10.20.30.40|015236433
0233654|122555|10.20.30.50|023365433
**
**
**
In file 2.txt I have the following entries as shown:
0152364|134444|10.20.30.40|015236433
0233654|122555|10.20.30.50|023365433... (4 Replies)