在 Beyond Compare 中使用文件夹比较时,我希望排除包含特殊字符的文件。特别是我有一些名为 Icon\r 的文件,Icon 的文件名最后一个字符是回车符。
在会话设置、名称过滤器中,我无法在“排除文件:”列表中找到描述此文件名的方法。
如果我转储文件名的字符,我可以看到名称中附加了一个回车符:
bash-3.2$ mdls Icon*
kMDItemFSContentChangeDate = 2018-12-14 17:56:48 +0000
kMDItemFSCreationDate = 2018-12-14 17:56:48 +0000
kMDItemFSCreatorCode = ""
kMDItemFSFinderFlags = 16384
kMDItemFSHasCustomIcon = 0
kMDItemFSInvisible = 1
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = 0
kMDItemFSLabel = 0
kMDItemFSName = "Icon "
kMDItemFSNodeCount = 363549
kMDItemFSOwnerGroupID = 20
kMDItemFSOwnerUserID = 501
kMDItemFSSize = 363549
kMDItemFSTypeCode = ""
bash-3.2$ ls -1 | egrep Icon | od -c
0000000 I c o n \r \n
0000006
bash-3.2$ ls Icon*
Icon?
bash-3.2$
我尝试了各种表示形式“Icon”、“Icon\r”,并且不想使用“Icon*”,即以 Icon 开头的任何内容,这可能会排除以 Icon 开头的其他文件。
答案1
Beyond Compare 的文件名过滤器不支持匹配回车符或换行符。文件名过滤器使用通配符 ? 来匹配任何单个字符。请尝试使用文件名过滤器“Icon?”或“Icon??”。