目前,当我必须在代码中搜索复杂的模式时,我通常使用 find 和 grep 的组合形式:
find / \( -type f -regextype posix-extended -regex '.*python3.*py' \) -exec grep -EliI '\b__[[:alnum:]]*_\b' {} \; -exec cat {} \; > ~/python.py
虽然这看起来很长,但如果你使用 zsh,它实际上很短。我只需键入 f(第一个字符),然后从我的命令历史记录中直接转到此命令。此外,find/grep 中的正则表达式经过标准化和测试,因此不会出现意外或丢失搜索。
ripgrep/ag 等是新软件,当最初的维护者失去兴趣时,几年后可能不会支持。
是否有任何计划在 grep/其他版本的 grep 中的 ag/ack/rg 中包含 .gitignore 规则或优化?这些优化是否会/不会包含在 grep 中?
对于那些转换的人:你们觉得转换到 rg/ag/ack 是否值得,特别是因为这些工具也会有一个学习曲线?