grep –include действует как –exclude

Я пытаюсь использовать параметр -include grep, но он не ведет себя так, как я ожидаю.

Рассмотрим этот упрощенный тест:

Настроить

me@de31:~/tmp$ cat file.h This is a .h file me@de31:~/tmp$ cat file.c This is a .c file 

проверить

 me@de31:~/tmp$ grep "This is a" * file.c:This is a .c file file.h:This is a .h file 

Использовать – включить

 me@de31:~/tmp$ grep "This is a" * --include="*.c" file.h:This is a .h file me@de31:~/tmp$ grep "This is a" * --include="*.h" file.c:This is a .c file 

Использовать –exclude

 me@de31:~/tmp$ grep "This is a" * --exclude="*.c" file.h:This is a .h file me@de31:~/tmp$ grep "This is a" * --exclude="*.h" file.c:This is a .c file 

Как вы можете видеть, –include имеет тот же результат, что и -exclude. Другое сообщение в заявках stackexchange «-r» требуется, но я тоже это пробовал, и он не менял результат.

Это похоже на ошибку. Нашел эту ошибку на панели запуска Ubuntu под названием: –include делает то же самое, что и -exclude! ,

Ваши примеры в моей системе Fedora 14:

 $ more file.* :::::::::::::: file.c :::::::::::::: This is a .c file :::::::::::::: file.h :::::::::::::: This is a .h file 

включают

 $ grep "This is a" * --include="*.c" file.c:This is a .c file $ grep "This is a" * --include="*.h" file.h:This is a .h file 

исключать

 $ grep "This is a" * --exclude="*.c" file.h:This is a .h file $ grep "This is a" * --exclude="*.h" file.c:This is a .c file 

версия grep

 $ grep --version grep (GNU grep) 2.8