Regular expression inside case statement notworking


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Regular expression inside case statement notworking
# 1  
Old 06-17-2011
Regular expression inside case statement notworking

I have the following script:
Quote:
tail -f /var/log/mymessages |
while read line
do
case $line in
"ERROR*memory") printf "%s\n" "$line" |
mailx -s "OpenSIPS Memory Error" pnc@domain.com
;;
esac
done
For catching errors like:
Quote:
ERROR:nathelper:nh_timer: out of pkg memory
ERROR:registrar:build_contact: no pkg memory left
ERROR:core:build_res_buf_from_sip_req: out of pkg memory ; needs 45926
But the regular expression ERROR*memory inside case doesn't seem to be working.
The output of bash -x scriptname is:
Quote:
+ tail -f /var/log/mymessages
+ read line
+ case $line in
+ read line
+ case $line in
+ read line
+ case $line in
+ read line
+ case $line in
+ read line
+ case $line in
+ read line
Please help
# 2  
Old 06-17-2011
Remove the quotes:

Code:
ERROR*memory

This User Gave Thanks to radoulov For This Post:
# 3  
Old 06-17-2011
Thanks,works like a charm.
I need another help, now the script is unable to catch any new line matching the pattern
Quote:
ERROR*memory
Is there any fundamental error in the script?
# 4  
Old 06-17-2011
The output that passes through the pipe is buffered, I suppose you just need to wait until the buffer gets flushed ...
(just add some more lines and you should see the script working).
This User Gave Thanks to radoulov For This Post:
# 5  
Old 06-17-2011
Does ERROR.*memory and ERROR*memory mean the same?
# 6  
Old 06-17-2011
No, you're using shell pattern matching, not regular expressions. The dot ( . ) has no special meaning in shell pattern matching
(it just matches a literal dot).
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Use sqlplus statement inside case sentence

Hello, I have a problem. I want to launch a different sql queries for different shell parameter values, something like this. #/bin/bash case $1 in "A") sqlplus -s user/pass << SQL query A; SQL "B") sqlplus -s user/pass << SQL2 ... (3 Replies)
Discussion started by: Vares
3 Replies

2. Shell Programming and Scripting

incorporating a regular expression statement in a shell script (.sh)

I do have a shell file where I call many unix commands . I would like to add a regular expression step in that shell file, where a text file, say Test.txt has to be openned and all the :'s should be replaced. Basically apply the follwoing regular expression: :%s/://g to that particular text... (2 Replies)
Discussion started by: Lucky Ali
2 Replies

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

4. Shell Programming and Scripting

wildcard inside regular expression for grep

Hi, I'm on a Linux machine with a bash shell. I have some apache logs from where I want to extract the lines that match this pattern : "GET /dir1/dir2/dir3/bt_sx.gif HTTP/1.1" but where "/dir1/dir2/dir3/bt_sx" may vary , so I would like to grep something like cat apache.log | grep "\"GET... (2 Replies)
Discussion started by: black_fender
2 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. Shell Programming and Scripting

multiple lines inside a case statement

echo "please enter ur choice.. 1. Make a file. 2. Display contents 3. Copy the file 4. Rename the file 5. Delete the file 6. Exit" read choice case $choice in 1 ) echo enter the file name read fname if then echo... (2 Replies)
Discussion started by: gotam
2 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. 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
Login or Register to Ask a Question