gpt4 book ai didi

regex - fgrep 匹配文字 "*"

转载 作者:行者123 更新时间:2023-12-04 05:53:08 25 4
gpt4 key购买 nike

我试图从包含一些字符串的行中清除我的日志文件。字符串在一个文件中,由随机 [键盘] 字符组成 [是的,也是 *、+ 等]
似乎 grep 对 * 进行了精确匹配:

grep "abc*" logs :gives a matchine line
blah_blah """abc*""" duh_duh

However when I read it off the file it doesnt work with fgrep:
cat file:
"abc*"
fgrep -f file logs => Matches nothing

我认为 fgrep 与 grep + f [grep -f] 相同。是否有一些标志可以与 fgrep 一起使用来实现这一点?

谢谢!

最佳答案

fgrep相当于 grep -F ,不是 grep -f .和 -F option 匹配固定字符串,而不是模式。如果您尝试匹配文字字符串“abc*”,这与以“ab”开头并后跟零个或多个“c”字符的正则表达式不同。

让我们确定我们正在使用的内容:

[ghoti@pc ~]$ cat logs.txt 
ab
blah_blah """abc*""" duh_duh
abc
[ghoti@pc ~]$ cat patterns.txt
abc*
[ghoti@pc ~]$

并尝试 grep 和 fgrep:
[ghoti@pc ~]$ grep -f patterns.txt logs.txt 
ab
blah_blah """abc*""" duh_duh
abc
[ghoti@pc ~]$ fgrep -f patterns.txt logs.txt
blah_blah """abc*""" duh_duh
[ghoti@pc ~]$

如您所见,模式被 grep 解释为正则表达式。 , 但作为 fgrep 的文字字符串.

确认您匹配的是字符串还是模式,您就会知道应该使用哪个版本的 grep。

关于regex - fgrep 匹配文字 "*",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9828765/

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