加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash正则表达式用一些后缀而不是一个特定的

发布时间:2020-12-15 21:26:15 所属栏目:安全 来源:网络整理
导读:我需要(不区分大小写)一个单词的几个变体的所有匹配 – 除了一个 – 包括未知数. 我想要 acceptacceptanceacceptableaccepting ……但不是“接受”.当他指的是“例外”时,同事使用它.很多. 由于我无法预测变化(或错别字),我需要允许诸如“acceptjunk”和“ac
我需要(不区分大小写)一个单词的几个变体的所有匹配 – 除了一个 – 包括未知数.

我想要

accept
acceptance
acceptable
accepting

……但不是“接受”.当他指的是“例外”时,同事使用它.很多.

由于我无法预测变化(或错别字),我需要允许诸如“acceptjunk”和“acceptMacarena”之类的东西

我认为我可以通过消极的前瞻来实现这一目标,但这并没有给出我需要的结果

grep -iE '(?!acception)(accept[a-zA-Z]*)[[:space:]]' file

诀窍是我可以接受(har)包含“acception”的行,前提是其他单词匹配.例如,这条线可以匹配:

The acceptance of the inevitable is the acception.

…否则到现在我已经通过grep -v管道grep并完成了它:

grep -iE '(accept)[a-zA-Z]*[[:space:]]' | grep -vi 'acception'

我发现some questions that are similar和许多并不是这样.在grep -i中使用a-zA-Z可能是不必要的,但我正在fla.我可能错过了一些小的或基本的东西……但我仍然想念它.它是什么?

谢谢阅读.

PS:我没有和grep结婚 – 但我在bash中操作 – 所以如果有一个神奇的awk命令可以做到这一点,我就是所有的耳朵(眼睛).

PPS:忘了提及在https://regex101.com/上面的前瞻似乎工作,但它没有我的完整grep命令.

解决方法

要使用外观,您需要具有PCRE的GNU grep

grep -iP '(?!acception)(accept[a-z]*)[[:space:]]'

使用awk,这可能会起作用

awk '{ip=$0; sub(/acception/,""); if(/accept[a-zA-Z]*[[:space:]]/) print ip}'

> ip = $0保存输入行> sub(/ acception /,“”)删除不需要的单词,可以添加其他不需要的单词> if(/ accept [a-zA-Z] * [[:space:]] /)print ip然后打印该行,如果它仍包含被搜索的单词

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读