grep --include age como --exclude

4

Estou tentando usar a opção --include do grep, mas ela não se comporta como eu esperava.

Considere este teste simplificado:

Configuração

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

Confirme

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

Use --include

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

Use --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

Como você pode ver, --include tem o mesmo resultado que --exclude. Outro post sobre o stackexchange afirma que "-r" é necessário, mas eu tentei também, e isso não alterou a saída.

    
por user2100564 12.07.2013 / 21:50

1 resposta

2

Isso parece ser um bug de algum tipo. Encontrei este arquivo de bug no Ubuntu, intitulado: --include faz o mesmo que --exclude! .

Seus exemplos no meu sistema Fedora 14:

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

::::::::::::::
file.h
::::::::::::::
This is a .h file

incluir

$ 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

excluir

$ 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

versão grep

$ grep --version
grep (GNU grep) 2.8
    
por 12.07.2013 / 21:55

Tags