Visit Our UNIX and Linux User Community


Help with regular expression


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with regular expression
# 1  
Old 07-03-2014
Help with regular expression

Hi All

We have a file with statements like below
Code:
 
 SELECT BLAH,BLAH,... FROM TABSCHEMA1.TABSCHEMA1 WITH UR
 SELECT BLAH,BLAH,... FROM TABSCHEMA2.TABSCHEMA2 WHERE BLAH=1 WITH UR
 .
 .
 . and so on

We want the word Anything after FROM<SPACE> and stop when the word Encounter Space.

Could some please help with a regular expression/sed with which I can achieve this?
Code:
 
 OUTPUT expected is
 TABSCHEMA1.TABSCHEMA1
 TABSCHEMA2.TABSCHEMA2

Thanks

Last edited by vbe; 07-03-2014 at 10:56 AM..
# 2  
Old 07-03-2014
Code:
 awk '{match($0,/FROM (\w+\.\w+)/,a); print a[1]}' infile

This User Gave Thanks to in2nix4life For This Post:
# 3  
Old 07-03-2014
Hello,

kindly use the code tags for any commands or codes as per forum rules.
Also following code may help you in same.


Code:
awk -F"FROM " '{gsub(/[[:space:]].*/,X,$2); print $2}' File_name

Output will be as follows.

Code:
TABSCHEMA1.TABSCHEMA1
TABSCHEMA2.TABSCHEMA2


Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 4  
Old 07-03-2014
Try

Code:
sed 's/.*FROM \([^ ][^ ]*\).*/\1/' file

or
Code:
awk '/FROM/ {getline;print;next}' RS=' ' file

This User Gave Thanks to clx For This Post:
# 5  
Old 07-03-2014
Code:
sed -n 's/.*FROM \([^ ]*\).*/\1/p' file

Code:
sed '/.*FROM /!d; s///; s/ .*//' file

This User Gave Thanks to Scrutinizer For This Post:
# 6  
Old 07-04-2014
Thank you for your responses.

I tried its working as expected.

I need to get that inside awk, can I use SED?

Can I use awk inside awk?
# 7  
Old 07-04-2014
Yes, you can invoke sed inside awk, and yes, you can invoke awk inside awk; but there is very seldom any reason to do so.

You have already been shown several ways to do what you requested in your original post. So, I assume you must want to do something more than you have shown us.

Please explain what you're trying to do. Show us some sample input and what output you're trying to produce (using CODE tags). Show us the code you have tried and explain what it isn't doing that you want it to do.
This User Gave Thanks to Don Cragun For This Post:

Previous Thread | Next Thread
Test Your Knowledge in Computers #599
Difficulty: Medium
For modern C programming, defining functions is a two step process. First, you declare a function and its signature using a prototype. Then you define the function by providing a function body that defines what the function does.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Regular expression

I would like to extract "JDBC Thin Client" from (PROGRAM=JDBC Thin Client); and "C:\Python26\python.exe" from (PROGRAM=C:\Python26\python.exe); "txm_v_awsrf_db.pr" from (PROGRAM=txm_v_awsrf_db.pr). if input line like "(PROGRAM=)", it return unknown. Would you help suggest a regular... (4 Replies)
Discussion started by: cstsang
4 Replies

2. Shell Programming and Scripting

Regular expression

Can someone please explain me what does this mean? ^{1,50}$ (1 Reply)
Discussion started by: Anupam_Halder
1 Replies

3. UNIX for Dummies Questions & Answers

Regular expression help

Hi, I am quite knew to scripting and I am trying to get a regular expression to work to check that a user enters a valid version number such as 1 or 1.1 or 12.3 etc. I dont seem to be able to get it to work as it picks up versions such as 1.......2. I only want it to work with a single dot.... (12 Replies)
Discussion started by: frodo61
12 Replies

4. UNIX for Advanced & Expert Users

sed: -e expression #1, char 0: no previous regular expression

Hello All, I'm trying to extract the lines between two consecutive elements of an array from a file. My array looks like: problem_arr=(PRS111 PRS213 PRS234) j=0 while } ] do k=`expr $j + 1` sed -n "/${problem_arr}/,/${problem_arr}/p" problemid.txt ---some operation goes... (11 Replies)
Discussion started by: InduInduIndu
11 Replies

5. Programming

Perl: How to read from a file, do regular expression and then replace the found regular expression

Hi all, How am I read a file, find the match regular expression and overwrite to the same files. open DESTINATION_FILE, "<tmptravl.dat" or die "tmptravl.dat"; open NEW_DESTINATION_FILE, ">new_tmptravl.dat" or die "new_tmptravl.dat"; while (<DESTINATION_FILE>) { # print... (1 Reply)
Discussion started by: jessy83
1 Replies

6. Shell Programming and Scripting

Integer expression expected: with regular expression

CA_RELEASE has a value of 6. I need to check if that this is a numeric value. if not error. source $CA_VERSION_DATA if * ] then echo "CA_RELESE $CA_RELEASE is invalid" exit -1 fi + source /etc/ncgl/ca_version_data ++ CA_PRODUCT_ID=samxts ++ CA_RELEASE=6 ++ CA_WEEK_NO=7 ++... (3 Replies)
Discussion started by: ketkee1985
3 Replies

7. UNIX for Dummies Questions & Answers

ls with regular expression

I currently list and sort all the files in a directory which begin with an Upper Case C and end with the extension '#finished#'. Here is the command I use: ls -tr $currentDir/*.#finished# what i need to do now is list all the files in a directory that begin with upper case C and end... (3 Replies)
Discussion started by: rkgudde
3 Replies

8. Linux

Regular expression to extract "y" from "abc/x.y.z" .... i need regular expression

Regular expression to extract "y" from "abc/x.y.z" (2 Replies)
Discussion started by: rag84dec
2 Replies

9. Programming

What does the regular expression ['(^[^~]+~).*'] mean?

What does the regular expression +~).*'] mean while using it with regexec.When the string "RCHNUSNT35C~rs07/ASM-RS07" is used with the regular expression +~).*'] regexec gives an error. I know what regexec does,but i do not understand what this expression means wrt to this string... any help... (2 Replies)
Discussion started by: anupamar
2 Replies

10. Shell Programming and Scripting

Regular Expression + Aritmetical Expression

Is it possible to combine a regular expression with a aritmetical expression? For example, taking a 8-numbers caracter sequece and casting each output of a grep, comparing to a constant. THX! (2 Replies)
Discussion started by: Z0mby
2 Replies

Featured Tech Videos