我需要在文本文件中找到至少有一个的行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 的答案更短的内容。如果您可以使用其他工具,这里有一些选项:
珀尔
perl -pe ' /x/ && /y.*y/ || next' file
awk
awk '/x/ && /y.*y/' file
我能想到的任何其他方法都必须使用@jofel 的三管齐下的方法。