What's the difference between \d , [:digit:], and [0-9] in regular expression ?
Hello,
It seems that \d , [:digit:], and [0-9] are not the same.According to the regular expression reference, \d , [:digit:], and [0-9] have the same meaning, which represent a digit, but why not them work on linux?
I am very puzzled for the above, "123" should match \b[0-9]{3}\b, but why it not ?
Thanks!
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:
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.
Different bash versions on different platforms yield different results.
I'm not sure why with certain versions on some platforms it seems to work when I quote the escape sequences:
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)
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)
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)
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)
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)
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)
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)
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)
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)