为什么grep找不到整数*2?

Ric*_*lev 1 linux grep

例如

grep -n 'integer*2' *.f
Run Code Online (Sandbox Code Playgroud)

什么也没看.但是

grep -n '*2' *.f


main.f:57:      integer*2 itime(nxmax)
main.f:605:             dxy=((xsource(is)-xobs)**2+(ysource(is)-yobs)**2)**.5
main.f:622:           chisum=chisum+diff2/uobs**2
model.f:15:      integer*2 veli(nxmax)
model.f:52:      size2=size**2
time.f:151:      integer*2 itime(nxmax)
Run Code Online (Sandbox Code Playgroud)

我真的不明白这一点.

Chr*_*odd 5

*是一个运算符,意思是"匹配前一个项0次或更多次".所以integer*2匹配

intege2
integer2
integerr2
integerrr2
     :
Run Code Online (Sandbox Code Playgroud)

没有一个出现在你的程序中. *在RE 的开头是没有意义的(没有前一个术语),所以要么被忽略要么被视为匹配a *.逃脱*它以匹配一个真正的明星:

'integer\*2'
Run Code Online (Sandbox Code Playgroud)