#regex #regex-parser #tool #search #pages #file-search #grepping

app weirdgrep

用于大量代码页面的怪异grep工具

4 个稳定版本

1.0.5 2023年10月10日
1.0.4 2023年2月28日
1.0.2 2022年8月23日

#5 in #regex-parser

MIT 许可证

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