01-18-2013
Quote:
Originally Posted by
radoulov
Your regular expression matches: zero or more occurrences of [0-9] followed by a literal dot ., followed by zero or more occurrences of [0-9].
The == / != operators in ksh don't support regular expressions, but only shell pattern matching.
As I already said, check if your ksh version supports the =~ operator (but I doubt, if it's really an x88 implementation).
You should also modify the pattern (if used as a regular expression) to restrict the matching (see the examples in the previous two posts).
If your shell doesn't support regular expressions, use grep, as balajesuri suggested (you may need to use > /dev/null
instead of -q with some grep implementations.
Thank you for explaining. If my shell doesnt support regular expressions why does some of the regular expression work in my code? The =~ didnt work by the way. I will try usng the grep example instead but how would I make a single dot optionally instead of mandatory, would it be \? after the dot?
Thanks
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
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
2. Programming
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
3. Linux
Regular expression to extract "y" from "abc/x.y.z" (2 Replies)
Discussion started by: rag84dec
2 Replies
4. UNIX for Dummies Questions & Answers
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
5. Shell Programming and Scripting
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
6. Programming
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
7. UNIX for Dummies Questions & Answers
\..\ {3\}$
which one of these does this match
rs.ef$tt
abc.ab
abc.$$$$
abc
I think its the 1st one what do you think?
Thanks
Please use code tags! (2 Replies)
Discussion started by: drew211
2 Replies
8. UNIX for Advanced & Expert Users
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
9. Shell Programming and Scripting
Can someone please explain me what does this mean?
^{1,50}$ (1 Reply)
Discussion started by: Anupam_Halder
1 Replies
10. Shell Programming and Scripting
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
LEARN ABOUT SUNOS
re_comp
re_comp(3C) Standard C Library Functions re_comp(3C)
NAME
re_comp, re_exec - compile and execute regular expressions
SYNOPSIS
#include <re_comp.h>
char *re_comp(const char *string);
int re_exec(const char *string);
DESCRIPTION
The re_comp() function converts a regular expression string (RE) into an internal form suitable for pattern matching. The re_exec() func-
tion compares the string pointed to by the string argument with the last regular expression passed to re_comp().
If re_comp() is called with a null pointer argument, the current regular expression remains unchanged.
Strings passed to both re_comp() and re_exec() must be terminated by a null byte, and may include NEWLINE characters.
The re_comp() and re_exec() functions support simple regular expressions, which are defined on the regexp(5) manual page. The regular
expressions of the form {m}, {m,}, or {m,n} are not supported.
RETURN VALUES
The re_comp() function returns a null pointer when the string pointed to by the string argument is successfully converted. Otherwise, a
pointer to one of the following error message strings is returned:
No previous regular expression
Regular expression too long
unmatched (
missing ]
too many () pairs
unmatched )
Upon successful completion, re_exec() returns 1 if string matches the last compiled regular expression. Otherwise, re_exec() returns 0 if
string fails to match the last compiled regular expression, and -1 if the compiled regular expression is invalid (indicating an internal
error).
ERRORS
No errors are defined.
USAGE
For portability to implementations conforming to X/Open standards prior to SUS, regcomp(3C) and regexec(3C) are preferred to these func-
tions. See standards(5).
SEE ALSO
grep(1), regcmp(1), regcmp(3C), regcomp(3C), regexec(3C), regexpr(3GEN), regexp(5), standards(5)
SunOS 5.10 26 Feb 1997 re_comp(3C)