テキストファイルで1つ以上の行を見つける必要があります。x
そして少なくとも2つy
。
私は以下を試しました:
grep -E "x.*y{2}" file.txt
このアプローチはうまくいきませんでした。別の方法がありますか?
答え1
2 回の連続 grep 呼び出しを使用できます。
grep 'x' file.txt | grep 'y.*y'
または3つの可能性のうちの1つ:
grep -E 'x.*y.*y|y.*x.*y|y.*y.*x' file.txt
答え2
どのような順序で見つけることができれば、@jofelの答えよりも短い内容を得ることができるかどうか疑われます。他のツールにアクセスできる場合は、次のオプションがあります。
真珠
perl -pe ' /x/ && /y.*y/ || next' file
アッ
awk '/x/ && /y.*y/' file
私が考えることができる他のアプローチは@jofelの3つのアプローチを使うべきです。