查找文件中的字符

查找文件中的字符

我需要在文本文件中找到至少有一个的行x 至少两个y

我尝试了以下方法:

grep -E "x.*y{2}" file.txt

这个方法没有奏效。还有其他方法吗?

答案1

您可以使用两个连续的 grep 调用:

grep 'x' file.txt | grep 'y.*y'

或者具有三种可能性的一种:

grep -E 'x.*y.*y|y.*x.*y|y.*y.*x' file.txt

答案2

如果可以按任何顺序找到它们,我怀疑您能否得到比 @jofel 的答案更短的内容。如果您可以使用其他工具,这里有一些选项:

  1. 珀尔

    perl -pe ' /x/ && /y.*y/ || next' file
    
  2. awk

    awk '/x/ && /y.*y/' file
    

我能想到的任何其他方法都必须使用@jofel 的三管齐下的方法。

相关内容