即使使用bash命令(类似于grep)将模式按字符分割,如何获得模式的匹配?
我试图输出文件中包含特定单词/模式的所有行,即使它的字母之间包含其他字符 假设我们有一堆域名,我们想过滤掉所有包含“paypal”的域名,我希望有这样的输出:即使使用bash命令(类似于grep)将模式按字符分割,如何获得模式的匹配?,bash,scripting,grep,command,Bash,Scripting,Grep,Command,我试图输出文件中包含特定单词/模式的所有行,即使它的字母之间包含其他字符 假设我们有一堆域名,我们想过滤掉所有包含“paypal”的域名,我希望有这样的输出: pay-pal-secure.com payppal.net etc... 我想知道这在grep中是否可行,或者是否存在其他可能的方法 非常感谢 将paypal替换为regexpp.*a.*y.*p.*a.*l以允许字母之间的所有字符 更新: 使用扩展正则表达式p.{0,2}a.{0,2}y.{0,2}p.{0,2}a.{0,2}l将字
pay-pal-secure.com
payppal.net
etc...
我想知道这在grep中是否可行,或者是否存在其他可能的方法
非常感谢 将
paypal
替换为regexpp.*a.*y.*p.*a.*l
以允许字母之间的所有字符
更新:
使用扩展正则表达式p.{0,2}a.{0,2}y.{0,2}p.{0,2}a.{0,2}l
将字母之间的字符限制为无到两个
示例:grep-E'p.{0,2}a.{0,2}y.{0,2}p.{0,2}a.{0,2}l'文件
请参阅:或者您可以使用(近似grep):
这是一个好主意,但它会产生不想要的结果,有没有办法做到这一点,但每个字母之间只能有一两个中断?嗯,似乎它对我不起作用,它只输出完整的单词匹配
agrep-V
:这是agrep版本3.0,1994。你是说这在最新版本中被弃用了?我的是3.41.5,我不知道。我下载了3.41,它声称是3.40,但它可以工作。不过我还是要坚持3.0。
$ agrep -By paypal file
agrep: 2 words match within 1 error
pay-pal-secure.com
payppal.net