[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

RE: [rhelv5-list] Regular Expressions on RHEL 5



'grep -q whatever' returns 0 if there was a match and non-zero if there
was not a match.  The OP is probably doing a
wget -N --no-check-certificate https://myserver.net/file.txt  2>&1
>/dev/null  | egrep -q '[Nn]ot\ [retrieving|Found]' && exit
if [ $? -eq 0 ]; then
   # found
   ...
else
   # not found
   ...
fi

The '&& exit' is redundant.

Single quotes mean "this literal string including any regexs as a
string.  The OP should probably have used:

wget -N --no-check-certificate https://myserver.net/file.txt  2>&1
>/dev/null  | egrep -q "[Nn]ot [retrieving|Found]"

Except that '[]' is a list of characters to match against, not a set of
words to match against.

This might be better.

wget -N --no-check-certificate https://myserver.net/file.txt  2>&1
>/dev/null  | egrep -iq "not retrieving|not found"

CC


-----Original Message-----
From: rhelv5-list-bounces redhat com
[mailto:rhelv5-list-bounces redhat com] On Behalf Of Collins, Kevin
[MindWorks]
Sent: Thursday, 27 December 2007 5:54 AM
To: Red Hat Enterprise Linux 5 (Tikanga) discussion mailing-list
Subject: RE: [rhelv5-list] Regular Expressions on RHEL 5

Your regular expression is not very good:

egrep -q '[Nn]ot\ [retrieving|Found]'
                ^

You are quoting the string, so why are you escaping the space?

egrep -q '[Nn]ot\ [retrieving|Found]'   
                   ^^^^^^^^^^^^^^^^ 

This matches any of one the characters listed, NOT the strings
"retrieving" or "Found" - for that, you would want something like:

egrep -q '[Nn]ot (retrieving|Found)'

Third, you are telling the shell "if this command (egrep -q ...) returns
a successful return code, then exit (&& exit). So, how do you know what
the reurn code is? The "-q" tells egrep to print nothing, so you would
not see any difference.

Which shell are you using? Korn shell (ksh) changed between RHEL4 and
RHEL5 from pdksh to actual Korn shell... could be that pipelines have
slightly different behavior.

Kevin

-----Original Message-----
From: rhelv5-list-bounces redhat com
[mailto:rhelv5-list-bounces redhat com] On Behalf Of Ian Lists
Sent: Wednesday, December 26, 2007 1:43 PM
To: rhelv5-list redhat com
Subject: [rhelv5-list] Regular Expressions on RHEL 5

I have a strange situation where a script that works on RHEL 4 and
Fedora 8 doesn't work with RHEL5.  The piece of the script that is
failing is very simple, it's just a wget with grep.
wget -N --no-check-certificate https://myserver.net/file.txt  2>&1
>/dev/null  | egrep -q '[Nn]ot\ [retrieving|Found]' && exit

It doesn't seem to care about matching the grep results on RHEL5, it
just always exits.  The script should just continue on if it doesn't get
a hit on the grep statement. Anyone have any suggestions?

Thanks,
Ian


_______________________________________________
rhelv5-list mailing list
rhelv5-list redhat com
https://www.redhat.com/mailman/listinfo/rhelv5-list

_______________________________________________
rhelv5-list mailing list
rhelv5-list redhat com
https://www.redhat.com/mailman/listinfo/rhelv5-list

NOTICE: This email and any attachments are confidential. 
They may contain legally privileged information or 
copyright material. You must not read, copy, use or 
disclose them without authorisation. If you are not an 
intended recipient, please contact us at once by return 
email and then delete both messages and all attachments.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]