0

I'm using the following egrep invocation as a filter for an ant build:

egrep '\[.*\]|BUILD|time\:'

The build.xml file has a huge number of empty or unimportant targets that I'm trying to filter out. However, any of them that have "build" in the name are still showing up in the output:

s.properties.build.mode.default:
s.properties.build.mode:
      [jar] Building jar: <my jar path>.jar
      [jar] JARs are never empty, they contain at least a manifest file
build.latest.execute:

(Context: This is on RHEL5.)

Why is this regex matching in a case insensitive manner?

In response to comments:

user@host ~> echo $GREP_OPTIONS

user@host ~> type egrep
egrep is an alias for grep -E
user@host ~> alias egrep
egrep='grep -E'
4
  • a shot in the dark, but check your GREP_OPTIONS env variable, see if you have -i in there Feb 28, 2012 at 18:35
  • Similarly, check that your egrep isn't somehow aliased to use -i. E.g., type egrep or alias egrep.
    – jjlin
    Feb 28, 2012 at 19:15
  • Okay, so your egrep is aliased to grep -E, which is weird in itself, since there's no need for such an alias (as egrep implicitly means grep -E). What is your grep aliased to then?
    – jjlin
    Feb 28, 2012 at 20:35
  • That was the problem - grep was aliased to grep -i --color=auto. If you'd care to answer, I'll accept it.
    – Matt Mills
    Feb 28, 2012 at 20:48

1 Answer 1

2

Check that your grep or egrep isn't aliased to use the -i option.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .