Grep command with multiple pattern


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Grep command with multiple pattern
# 8  
Old 10-08-2010
man grep, since you have not (or Im half blind today...) said what OS.
For instance, in HP-UX 11 and previous you have no option -w.
to have something alike you can do:
Code:
# grep -e "^abc" -e " abc " -e "abc$" filename

# 9  
Old 10-08-2010
Try this

Hi,

You can try below,

DB_ERR=`echo "$DB_TRANS" | egrep "[SP2-,ORA-]"`



Quote:
Originally Posted by Poonamol
Hi,

I want to search multiple patterns in a variable.
Code:
DB_ERR=`echo "$DB_TRANS" | grep "SP2-" | grep "ORA-"`
echo $DB_ERR

But I am not getting anything in DB_ERR.
I want to print each line on seperate line. Could you please help me out in this. Thanks in advance.
# 10  
Old 10-11-2010
Thanks vbe. Now I am getting all errors started from SP2 and ORA.
My code is,
Code:
DB_ERR=$(echo "$DB_TRANS" | grep -e "SP2-" -e "ORA-")
echo $DB_ERR

But I am getting all erros in one line I need each line to be printed on seperate line.
Help me out.
# 11  
Old 10-11-2010
.... | egrep -e 'SP2-|ORA-'
# 12  
Old 10-11-2010
The problem appears to be that $DB_TRANS is an environment variable not a pointer to the name of a file. If this is the case the line break between messages is lost and you just have one long string.
Needs a re-think about where to store the error messages so that they can be processed line-by-line with "egrep".
# 13  
Old 10-12-2010
No, DB_TRANS is not an environment variable, Its,
Code:
DB_TRANS=$(sqlplus $USERID/$PASSWORD@$DATABASE << EOF 
set head off 
set feed off 
set serveroutput on
CREATE TABLE TBL1(
   OLD_ID VARCHAR2(6) PRIMARY KEY,
   NEW_ID VARCHAR2(6),
   DATE  DATE
);
commit;
/ 
EOF)

From it, I am picking up the errors as,
Code:
echo $DB_TRANS
DB_ERR=$(echo "$DB_TRANS" | grep -e "SP2-" -e "ORA-")
echo $DB_ERR

So want each error on new line. Please help me out.
# 14  
Old 10-12-2010
Quote:
No, DB_TRANS is not an environment variable, Its,

DB_TRANS=$(sqlplus $USERID/$PASSWORD@$DATABASE << EOF

Sorry, but DB_TRANS is an environment variable. This is the problem. You cannot store multiple lines in an environment variable for your purpose because the line breaks get lost. The whole contents of ${DB_TRANS} is one concatonated line.

Try redirecting the output to a file not to an environment variable. You can then use "egrep" on the file as described in many earlier posts.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep multiple pattern

I have got a text from each line, I need to fetch port only if there is an ip a.text text and port=25 b.ip=(12.32.54.256) and port="52" c.ip=(55.251.253.12) and port=25" d.text text and port="5" e.ip=(45.211.155.15) and port="457" f.ip=(144.158.256.2) and port="588" I know how to... (6 Replies)
Discussion started by: arpagon
6 Replies

2. Shell Programming and Scripting

sed and awk usage to grep a pattern 1 and with reference to this grep a pattern 2 and pattern 3

Hi , I have a file where i have modifed certain things compared to original file . The difference of the original file and modified file is as follows. # diff mir_lex.c.modified mir_lex.c.orig 3209c3209 < if(yy_current_buffer -> yy_is_our_buffer == 0) { --- >... (5 Replies)
Discussion started by: breezevinay
5 Replies

3. Shell Programming and Scripting

sed command to grep multiple pattern present in single line and delete that line

here is what i want to achieve.. i have a file with below contents cat fileName blah blah blah . .DROP this REJECT that . --sport 7800 -j REJECT --reject-with icmp-port-unreachable --dport 7800 -j REJECT --reject-with icmp-port-unreachable . . . more blah blah blah --dport 3306... (14 Replies)
Discussion started by: vivek d r
14 Replies

4. Linux

Creating 2 variables from a multiple pattern grep

first time poster here Im pretty new to grep and linux in general and I spent pretty much all day yesterday researching and coming up with a grep command to help with my university project. I am attempting to create a proof of concept bash script to scan the network using ngrep, find appropriate... (7 Replies)
Discussion started by: scottish_jason
7 Replies

5. Shell Programming and Scripting

Grep text between multiple pattern

Hello everybody, I have been looking around but can't figure how to do a grep command, that find the text between multiple patterns, example: (pattern1 OR pattern2) AND (pattern3 OR pattern4) text that I want (pattern5 OR pattern6) AND (pattern7 OR pattern8) So how do I find the "text... (4 Replies)
Discussion started by: Benou
4 Replies

6. Shell Programming and Scripting

How to grep multiple pattern from XML file

Hi Everyone pls if anyone can help me in writing a script or correcting it what I have done. I want to write a script to grep record number for all those record which have abc xyd cat dog in one of the field say VALUE, I have thousand of file in a dir and I want to search every file for... (6 Replies)
Discussion started by: revertback
6 Replies

7. Shell Programming and Scripting

Grep multiple line pattern and output the lines

Hi I have the following Input -- -- TABLE: BUSINESS_UNIT -- ALTER TABLE RATINGS.BUSINESS_UNIT ADD CONSTRAINT FK1_BUSINESS_UNIT FOREIGN KEY (PEOPLESOFT_CHART_FIELD_VALUE_ID) REFERENCES RATINGS.PEOPLESOFT_CHART_FIELD_VALUE(PEOPLESOFT_CHART_FIELD_VALUE_ID) ; ALTER TABLE... (1 Reply)
Discussion started by: pukars4u
1 Replies

8. Shell Programming and Scripting

Grep with multiple instances of same pattern

Hi, This is my text file I'm trying to Grep. Apple Location Greenland Rdsds dsds fdfd ddsads http Received Return Immediately Received End My Grep command: grep only--matching 'Location.*Received' Because the keyword Received appears twice, the Grep command will stop at the last... (3 Replies)
Discussion started by: spywarebox
3 Replies

9. Shell Programming and Scripting

Grep with multiple instances of same pattern

Hi, This is my text file I'm trying to Grep. Apple Location Greenland Rdsds dsds fdfd ddsads http Received Return Immediately Received End My Grep command: grep only--matching 'Location.*Received' e. Because the keyword Received appears twice, the Grep command will stop at the last... (0 Replies)
Discussion started by: spywarebox
0 Replies

10. Solaris

Multiple pattern on same line using grep

Hi, I would like to search multiple patterns on same line, i.e. all patterns must present on same line. Please suggest. Thanx (2 Replies)
Discussion started by: sanjay1979
2 Replies
Login or Register to Ask a Question