4 个稳定版本
1.0.5 | 2023年10月10日 |
---|---|
1.0.4 | 2023年2月28日 |
1.0.2 | 2022年8月23日 |
#5 in #regex-parser
11KB
215 行
weirdgrep
Weirdgrep 是一个允许您搜索大型文件(最初设计用于查找代码页面)的工具。
安装
$ cargo install weirdgrep
用法
$ weirdgrep -h
weirdgrep 1.0.2
Vaelio <[email protected]>
Regex parser to search through files.
USAGE:
weirdgrep [OPTIONS] <REGEX> <ENDTAG> <PATH>
ARGS:
<REGEX> Regex to apply
<ENDTAG> End Tag for the match
<PATH> File to parse
OPTIONS:
-a, --add-markers Add markers to better show which line matched
-h, --help Print help information
-n, --numbers Print line numbers for each printed lines starting from 0
-V, --version Print version information
-w <WITHIN> Switch to scope mode, and use this regex as a search and (regex, endtag) as
boundaries of the search afterwards
默认情况下,该工具将在 <PATH> 中搜索 <REGEX> 并打印出每个匹配项,直到遇到 <ENDTAG>。(<ENDTAG> 也可以是一个正则表达式)
当您想要提取例如匹配 <REGEX> 签名的代码页中的每个函数时,这非常有用。
您可以通过添加 -w <WITHIN> 开关来进一步提高精确度,该开关将使工具搜索此正则表达式,然后向前和向后查找 <ENDTAG> 和 <REGEX> 参数。(<WITHIN> 选项也可以是一个正则表达式)
示例
$ weirdgrep 'Function<.+' 'EndFunction' -w '.+/invite/.+' instructions.hasm -n
1660535: Function<createUrl>28016(1 params, 16 registers, 0 symbols):
1660536: LoadThisNS Reg8:1
[REDACTED]
1660577: Add Reg8:4, Reg8:2, Reg8:4
1660578: LoadConstString Reg8:2, UInt16:6648
1660578: ; Oper[1]: String(6648) '/invite/'
1660579:
[REDACTED]
1660611: EndFunction
$ wc -l instructions.hasm
1750287 instructions.hasm
依赖项
~6.5MB
~115K SLoC