我在git存储库中有一个目录,其中包含一些文件,我们称之为matchdir
:
$ ls matchdir
2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
da39a3ee5e6b4b0d3255bfef95601890afd80709
file.py
someotherfile.txt
我想将匹配40个十六进制字符的文件添加到我的.gitignore
文件中。像matchdir/[0-9a-f]{32}
这样的东西,但似乎不起作用。有没有办法匹配.gitignore文件中特定数量的字符重复?
答案 0 :(得分:4)
matchdir/????????????????????????????????????????
将所有文件与40个字母匹配。这不仅是十六进制字母,而且比任何长度都匹配的matchdir/*
更好。在emacs下键入40 ?
只需要3次击键: C-4 C-0 ?。
如果您只想捕获十六进制数字,现在可以轻松搜索?
[0-9a-f]
:
matchdir/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
答案 1 :(得分:1)
不完全匹配,但如果这些是没有扩展名且没有子目录的唯一文件,则可能是这样的解决方法:
matchdir/*
!matchdir/*.*
忽略所有文件,然后取消带点的文件。