尝试 grep 几个子目录中的文件,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
目录名称中似乎有一些关于通配符扩展的规则,我不明白。它们是什么?
这是在 Windows 7 机器上的 Cygwin 上。uname -r
给我“1.7.33-2(0.280/5/3)”。
答案1
将以下内容添加到您的~/.bashrc
文件中:
shopt -s nocaseglob
然后注销并重新登录 Cygwin(不是 Windows),现在 bash shell 在处理文件名时将不再区分大小写。更多信息这里。