Пытаясь найти файлы в нескольких дочерних каталогах, grep ничего не возвращает.

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

Но когда я спускаюсь в один из дочерних каталогов, grep находит совпадение.

~/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"

Это работает (то есть находит совпадение):

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

Но это не так:

~/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

Кажется, есть некоторые правила о расширении подстановочных знаков в именах каталогов, которые я не понимаю. Кто они такие?

Это на Cygwin на компьютере с Windows 7. uname -r дает мне «1.7.33-2(0.280/5/3)».

1 ответ1

0

Добавьте следующее в ваш файл ~/.bashrc :

shopt -s nocaseglob

Затем выйдите из системы и снова войдите в Cygwin (не Windows), теперь оболочка bash больше не будет чувствительна к регистру, когда она перебирает имена файлов. Больше информации здесь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .