gpt4 book ai didi

git - 如何使用 `git grep --not`

转载 作者:太空狗 更新时间:2023-10-29 14:35:12 29 4
gpt4 key购买 nike

我想运行一个 git grep命令 <pattern> , 但不包括超过 200 个字符的行。

我已经通过命令实现了这一点:

git grep <pattern> | grep -Ev '.{200}'

如果可能,我想将它作为一个命令运行(没有管道)。我以为我可以使用 git grep --not为此标记,但遇到困难。

这是我的尝试:

git grep -e <pattern> --not -e '.{200}'

我尝试了上述命令的不同组合,但没有得到想要的输出。

任何关于我接下来应该尝试什么的指示都将不胜感激,在此先感谢您的帮助。


解决方案:

(感谢@torek)

git grep -E -e one --and --not -e '.{200}'

最佳答案

description of the boolean operators for git grep 阅读:

--and
--or
--not
( …​ )
Specify how multiple patterns are combined using Boolean expressions. --or is the default operator. --and has higher precedence than --or. -e has to be used for all patterns.

你用过:

git grep -e <pattern> --not -e '.{200}'

所以你确实写了-e对于每个模式;但你没有选择 --and 中的一个或 --or ,所以你得到了默认值。哪个是默认的? (阅读上面引用的文本。)如果您要求匹配某种模式的内容不是至少 200 个字符,是否会选择 12 个字符长的内容?它不是至少 200,所以是的,它会被选中。 都匹配 234 个字符怎么办?嗯,它匹配,所以是的,它会被选中。唯一会被拒绝的是那些匹配并且为 200 个字符或更长的内容。

请注意 git grep本身也默认为基本正则表达式,除非您使用命令行选项或将其配置为使用扩展或 Perl 正则表达式。所以你可能想要 -E -e <pattern> --and --not -e '.{200}'这里。另见 https://en.wikipedia.org/wiki/Regular_expression

关于git - 如何使用 `git grep --not`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56203430/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com