Por que o grep está faltando correspondências ausentes ao pesquisar vários diretórios?

0

Tentando encontrar os arquivos em vários diretórios filhos, o grep não retorna nada.

~/box/raw $ grep ":2259\"" f*/hh*.adt
~/box/raw $ 

Mas quando eu desço em um dos diretórios filhos, o grep encontra uma correspondência.

~/box/raw/f040 $ grep ":2259\"" hh*.adt
hh_sr2014_v8.adt:"2/23/2015 2:33:49 PM","Leave Field:Introduction.BQ1a","Cause:Next Field","Status:Normal","Value:2259"

Isso funciona (ou seja, encontra a correspondência):

~/box/raw $ grep ":2259\"" f040/hh*.adt

Mas isso não acontece:

~/box/raw $ grep ":2259\"" f???/hh*.adt
~/box/raw $ grep ":2259\"" f???/hh_sr2014_v8.adt
~/box/raw $ grep ":2259\"" f*/hh_sr2014_v8.adt

Parece haver algumas regras sobre expansão de curingas em nomes de diretório que eu não entendo. O que são eles?

Isso está no Cygwin em uma máquina com Windows 7. uname -r me dá "1.7.33-2 (0.280 / 5/3)".

    
por katriel 03.04.2015 / 08:09

1 resposta

0

Adicione o seguinte ao seu arquivo ~/.bashrc :

shopt -s nocaseglob

Em seguida, efetue logout e volte ao Cygwin (não ao Windows), agora o bash shell não fará distinção entre maiúsculas e minúsculas quando estiver agrupando nomes de arquivos. Mais informações aqui .

    
por 03.04.2015 / 09:00