如何grep包含两个连续e的所有单词,并且还包含两个y

时间:2017-04-17 17:29:09

标签: regex grep

我想找到包含两个连续e的单词集,并且还包含两个y。

到目前为止我到了/eeyy/

4 个答案:

答案 0 :(得分:0)

管道:

$ echo eennmmyy | grep ee | grep yy
eennmmyy

答案 1 :(得分:0)

与ERE的改动:

$ echo evyyree | grep -E '.*ee.*yy|.*yy.*ee'
evyyree
$ echo eveeryy | grep -E '.*ee.*yy|.*yy.*ee'
eveeryy

如果匹配需要在同一个单词中,您可以执行以下操作:

$ echo "eee yyyy" | grep -E 'ee[^[:space:]]*yy|yy[^[:space:]]*ee'   # no match
$ echo "eeeyyyy" | grep -E 'ee[^[:space:]]*yy|yy[^[:space:]]*ee'
eeeyyyy

然后只有那个词:

$ echo 'eeeyy heelo' | grep -Eo 'ee[^[:space:]]*yy|yy[^[:space:]]*ee'
eeeyy

答案 2 :(得分:0)

awk 方法匹配包含eeyy的所有字词:

s="eennmmyy heello thees-whyy someyy"
echo $s | awk '{for(i=1;i<=NF;i++) if($i~/ee/ && $i~/yy/) print $i}'

输出:

eennmmyy
thees-whyy

答案 3 :(得分:0)

唯一合理且可扩展的方法是使用awk:

awk '/ee/&&/yy/' file

如果你还必须找到zz,想象一下尝试用grep方式做。这是awk:

awk '/ee/&&/yy/&&/zz/' file

这是grep:

grep -E 'ee.*yy.*zz|ee.*zz.*yy|yy.*ee.*zz|yy.*zz.*ee|zz.*yy.*ee|zz.*ee.*yy' file

现在添加第4个附加字符串以搜索并查看 的内容!