Extracting the strings matching a pattern from a word


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extracting the strings matching a pattern from a word
# 1  
Old 11-23-2009
Extracting the strings matching a pattern from a word

Hi All ,

I need to extract the strings that are matching with the pattern :
Code:
CUST.<AnyStringOfAnyLength>.<AnyStringOfAnyLength>

from a file and then write all these string into another file.

e.g. If a file SOURCE contains following lines :

Code:
IF(CUST.ABCD.EFGH==1) THEN
CUST.ABCD.EFGH = CUST.IJKL.MNOP + CUST.QRST.UVWX
CUST.YZA.BCDE = CUST.ABCD.EFGH -1
ENDIF

Then I need to extract following strings and write them to some other file DEST.
Code:
CUST.ABCD.EFGH
CUST.IJKL.MNOP
CUST.QRST.UVWX
CUST.YZA.BCDE 
CUST.ABCD.EFGH

Please suggest a solution or approach to meet required stuff.
TIA
# 2  
Old 11-23-2009
Try:
Code:
egrep -o 'CUST\.\w+\.\w+' SOURCE > DEST

# 3  
Old 11-25-2009
Thanks for the reply.

Unfortunately , egrep and grep both are not supporting "-o" option on the unix flavor I am working upon.Any other solution or approach ?
# 4  
Old 11-25-2009
So you don't want to match the if statement? You only show the string CUST.ABCD.EFGH once in your required output

Code:
IF(CUST.ABCD.EFGH==1) THEN

# 5  
Old 11-25-2009
Yes steadyonabix. I need to show the matching string once only, whatever may be the number of times a matching string is repeated.
# 6  
Old 11-25-2009
Try this and let me know if it is what you want: -

Code:
nawk '{
        for ( i = 1; i <= NF; i++ )
                if ( $i ~ /^CUST\..*\..*$/ )
                        printf( "%s\n", $i )
}' infile | sort -u

# 7  
Old 11-25-2009
Code:
my $str="IF(CUST.ABCD.EFGH==1) THEN CUST.ABCD.EFGH = CUST.IJKL.MNOP + CUST.QRST.UVWX CUST.YZA.BCDE = CUST.ABCD.EFGH -1 ENDIF";
my @tmp=$str=~/([A-Z]+\.[A-Z]+\.[A-Z]+)(?!.*THEN)/g;
print join "\n", @tmp;

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Extracting sub-string matching the pattern.

Hi, I have a string looks like the following: USERS 32767.9844 UNDOTBS1 32767.9844 SYSAUX 32767.9844 SYSTEM 32767.9844 EMS 8192 EMS 8192 EMS_INDEXES 4096 EMS_INDEXES 4096 8 rows selected. How do I extract a sub-string to get the expected output as following: EMS 8192 EMS_INDEXES 4096 ... (3 Replies)
Discussion started by: NetBear
3 Replies

2. Shell Programming and Scripting

Pattern Matching and extracting the required fields in Perl

Hi All, I am writing the following Perl Scrip and need your help in Pattern matching : I have the following Shell Script that would read line by line from the file (file_svn) and would inturn calls the Perl Script: #!/bin/bash perl_path="/home/dev/filter"... (2 Replies)
Discussion started by: filter
2 Replies

3. UNIX for Dummies Questions & Answers

Extraction of strings from a file, after pattern matching

I need to extract strings from a file. The file contains data like: Plan ABCD IN-+-172BB---118C2C---GGN_342-+-MM77_23--+-LAS24_3|GGK_774 | | \-LAS24_2|GGN_774 | +-AA_800_1-+-BAS_000|GGK_362 | | \-BAS_001|GGK_360 | \-DD_000T1---DAM_001|STEEL_0 Plan SHELL_1... (3 Replies)
Discussion started by: abkush
3 Replies

4. Shell Programming and Scripting

Korn Shell for pattern matching and extracting

Guys, i'm new to shell scripting. Here's what i need. I need a shell script which would read a file containing only 1 line which never changes. File containts - SQL_Mgd_Svc_ELONMCL54496 |EMEA\brookkev, EMEA\fieldgra, EMEA\tidmamar, EMEA\attfiste, EMEA\baldogar, EMEA\clarkia2, EMEA\conwasha,... (9 Replies)
Discussion started by: butterfly20
9 Replies

5. Shell Programming and Scripting

Extracting a string matching a pattern from a line

Hi All, I am pretty new to pattern matching and extraction using shell scripting. Could anyone please help me in extracting the word matching a pattern from a line in bash. Input Sample (can vary between any of the 3 samples below): 1) Adaptec SCSI RAID 5445 2) Adaptec SCSI 5445S RAID 3)... (8 Replies)
Discussion started by: jharish
8 Replies

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

7. Shell Programming and Scripting

help extracting a matching pattern and next lines of match

Hi there, i'm having some problems just making an awk script (i've tried this way, but other way can be posible for sure), for the next file file.txt <register> <createProfile> <result>0</result> <description><!]></description> <msisdn>34661461174</msisdn> <inputOmvID>1</inputOmvID>... (6 Replies)
Discussion started by: vicious
6 Replies

8. Shell Programming and Scripting

Problem extracting just a part of a matching pattern

Hello everyone, this is my first post so please give me a hand. I apologize for my English, I'll try to be clear with my request. I need to write a script (Bash) which finds all the variables defined in the file .h of the folder and then writes the name of the files .c where these variables are... (1 Reply)
Discussion started by: paxilpaz
1 Replies

9. Shell Programming and Scripting

Pattern matching extracting urls from rss, shell scripts

Hi all, how could i do ? I have a Rss file, i want to extract only the Urls (many) matching http://www.xxx.com/trailers/ from that file and copy into another file. like " <pubDate>Wed, 29 Apr 2009 00:00:00 PST</pubDate> <content:encoded><!Apple - Movie Trailers - The Hangover"><img... (3 Replies)
Discussion started by: BremboloIV
3 Replies

10. Shell Programming and Scripting

Extracting lines between 2 strings only if the pattern patches

Hi Friends, Please help me with the following problem: I have an xml file with the following lines: <init-param> <param-name>/default/directory</param-name> <param-value>default</param-value> </init-param> <init-param> ... (5 Replies)
Discussion started by: simran
5 Replies
Login or Register to Ask a Question