【发布时间】:2021-08-06 07:25:53
【问题描述】:
我正在寻找一种简单快速的方法来搜索仅包含 0x00 的文件。这是一个 8TB 硬盘,有些复制出错了。文件名和大小都可以,但它们只包含 0x00。我已经尝试使用带有\x00{100} 的wingrep ,但它会搜索整个文件并计算模式匹配的频率,这将花费太多时间。所以我写了一个简短的 C++ 程序,它只通过读取前 100 个字节来完成这项工作,但我很感兴趣如何使用正则表达式来告诉它应该只检查第一个匹配项,然后继续下一个文件?
谢谢 - 它适用于 `\A.*?\x00{100}。但这会在文件中找到所有匹配项 - 即使在最后。我已经查看但没有找到会限制搜索区域的标志(例如从索引 0 到索引 101)。好的 - 我已经在我的程序中完成了这项工作,但是否可以只使用正则表达式?
【问题讨论】:
-
试试
\A.*?\x00{100} -
请注意
\A和*?是大多数grep实现不支持可移植的Perl 扩展。如果您有 GNUgrep,请尝试使用grep -P启用这些功能。 -
@tripleee OP 提到了
wingrep(实际上是grepWin),它是基于.NET regex 库的。 -
尝试启用“仅一个实例”复选框选项。