I setup a directory structure as follows:
mkdir -p /tmp/test/build/lib/aaa/ cd /tmp/test mkdir rar echo "Hello" > foo.py echo "Hello" > bar.py echo "Hello" > rar/foo.py echo "Hello" > rar/bar.py echo "Hello" > build/lib/aaa/foo.py echo "Hello" > build/lib/aaa/bar.py I wish to exclude any py files under build/lib, ideally using the glob build/lib/**/*.py. I do not wish to --exclude-dir build/lib as there are potential collisions with non-python projects, and because python files may be nested further down.
If I try and do this with --exclude in grep, it fails:
grep -r "Hello" --exclude foo.py # Note: --exclude manual suggests excluding any file in any subdir matching `foo.py` # is excluded as expected behavior, which is NOT how globbing should work. # > bar.py:Hello # > rar/bar.py:Hello # > build/lib/aaa/bar.py:Hello grep -r "Hello" --exclude build/lib/*/foo.py # > bar.py:Hello # > foo.py:Hello # > rar/bar.py:Hello # > rar/foo.py:Hello # > build/lib/aaa/bar.py:Hello # > build/lib/aaa/foo.py:Hello grep -r "Hello" --exclude build/lib/aaa/foo.py # > bar.py:Hello # > foo.py:Hello # > rar/bar.py:Hello # > rar/foo.py:Hello # > build/lib/aaa/bar.py:Hello # > build/lib/aaa/foo.py:Hello Am I doing something wrong or is this a bug?