正则表达式只使用egrep捕获整个单词

nit*_*s24 5 regex unix linux shell grep

我正在使用egrep查看perforce NAS中的脚本.

我试图找到我们使用RCP和RSH的地方....我遇到的问题是1)我在REGEX吮吸; 2)我正在拾起我不感兴趣的垃圾.例如,如果一个文件有关于RCP的文件strcpy ..,那就是RSH上的所有权.......

显然我对这些并不感兴趣,但我不想排除基于所有权或strcpy这两个词的行...因为它们可能会一起使用......而且它不是一个完整的列表.

这是我的正则表达式

 'ftp|rcp|rsh' 
Run Code Online (Sandbox Code Playgroud)

如何修改这些来打击FTP,但不是SFTP ... rcp但没有strcpy,rsh但不是所有权.....等?

所以我想要匹配的东西.

ftp
`ftp`
/ftp/
"PUNCT"FTP"PUNCT"
Run Code Online (Sandbox Code Playgroud)

gau*_*inc 8

也许你需要这样的东西:

\b < - 这是单词的边界

\bpattern\b< - 此模式仅匹配pattern,但不匹配otherbigpatternthatyounotneed


kni*_*ttl 6

有几个元字符:

  • \b 字边界
  • \< 一开始
  • \> 字结束

所以,一个可能的正则表达式是: \<(ftp|rcp|rsh)\>