[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to use \Q \E in GREP in a case-insensitive way?
From: |
Stormy |
Subject: |
Re: How to use \Q \E in GREP in a case-insensitive way? |
Date: |
Thu, 26 Aug 2010 07:28:41 -0700 (PDT) |
I don't know much about how perl/grep interact. I tried inside perl, a
case-insensitive replace works, by adding "/i" to the end, e.g:
# echo "TesT" | perl -p -e 's/\Qtest\E/testworks/'
TesT
# echo "TesT" | perl -p -e 's/\Qtest\E/testworks/i'
testworks
As can be seen, 'test' matches 'TesT' even inside the \Q \E as long as the /i
is provided.
Any suggestions?
--- On Thu, 8/26/10, Paolo Bonzini <address@hidden> wrote:
> From: Paolo Bonzini <address@hidden>
> Subject: Re: How to use \Q \E in GREP in a case-insensitive way?
> To: "Stormy" <address@hidden>
> Cc: address@hidden
> Date: Thursday, August 26, 2010, 1:33 AM
> On 08/25/2010 05:02 PM, Stormy
> wrote:
> > however, when I try to make grep match in a
> case-insensitive way,
> > using -i flag there are no matches, here's an
> example:
> >
> > sh-3.2# echo "TeST" | grep -P
> '\QTeST\E' ==> Match, expected
> TeST
> > sh-3.2# echo "TeST" | grep -iP '\Qtest\E'
> ==> No match, UNEXPECTED
> >
> > I would expect the last example to match, since the -i
> flag was
> > passed. I rather stay with grep than to switch
> to perl or parsing
> > the large files manually.
>
> I think this is unexpected behavior of PCRE, not grep.
>
> Paolo
>