Sponsored Content
Top Forums Shell Programming and Scripting What's the difference between \d , [:digit:], and [0-9] in regular expression ? Post 302551249 by fpmurphy on Monday 29th of August 2011 10:15:06 PM
Old 08-29-2011
First of all there is no such shell type as 'sh-4.2'. You are probably using the Bash shell if you are on fedora 15. To find out the version of bash shell you are using do:
Code:
$ echo $BASH_VERSION
4.2.10(1) - release

Quote:
but why "\b[0-9]{3}\b" does not work ?
because (1) \b is unsupported in Bash regular expressions and (2) even if it were supported, your RE would be incorrect.

As other have pointed out, there are different "families" of regular expressions. Some of the more common of these are:

- BRE Basic Regular Expressions.
- ERE Extended Regular Expressions

Perl, Korn Shell 93, Python, XSLT and more support additional RE functionality.

Just because you read it on a website or in a book, does not mean that that particular RE example will work in the bash shell.

By the way, \b is a GNU extension available in glibc's regcomp(), but not required by POSIX. All the mainstream shells that I am aware of do their own RE handling and do not depend on library functions such as regcomp/regexec or the older regcmp/regex.
 

10 More Discussions You Might Find Interesting

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

2. Shell Programming and Scripting

regular expression

Hi all, My log file is like 19:40:22 INFO :Total time taken to Service External Request---15ms 19:40:22 INFO : External service failed with status KO 19:40:22 FATAL: External service failed with status KO 19:40:22 DEBUG : Batch started with 19:40:22 ERROR: Member: dmidecode.x86_64... (1 Reply)
Discussion started by: subin_bala
1 Replies

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

4. Shell Programming and Scripting

Regular expression

Hi I have to extract the first field and the last %field of the following out put.. /home (/abc/def/bhd ) : 522328 total allocated Kb 319448 free allocated Kb ... (2 Replies)
Discussion started by: Harikrishna
2 Replies

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

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

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

8. UNIX for Dummies Questions & Answers

Difference between space and [[:space:]] in regular expression

May I know the difference between space in keyboard and ] in regular expression I entered the following find . -type f -print | xargs grep -n 'dt=' | cut -d":" -f3 | sed 's/^ *dt=/dt=/g' After "^" there is a space. and the result is... dt=`date +%Y%m%d%H%M%S` dt=`date +%Y%m%d`... (6 Replies)
Discussion started by: bobbygsk
6 Replies

9. Shell Programming and Scripting

Regular expression for 6 digit number present in a line

Hello Team, i have a file test1.txt, in which i have to grep only the 6 digit number from it, Could you pls help in this. $cat test1.txt <description>R_XYZ_1.6 r370956</description> $ grep "\{6\}" test1.txt <description>R_XYZ_1.6 r370956</description> i need output as 370956. ... (3 Replies)
Discussion started by: chandana hs
3 Replies

10. Shell Programming and Scripting

Regular expression

Hello Gurus, I am looking for regular expressions for awk to filter on second column 2nd and 3rd digit Using in code something like: awk '{if ( $2 == "0::" ) print} source file: 0 0:0:0 FC 15 normal 559104 51200 0:3:1* 1:3:1 600 1 0:0:1 FC 15 normal ... (2 Replies)
Discussion started by: vishalgoyal
2 Replies
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)
All times are GMT -4. The time now is 09:15 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy