ファイル内の文字の検索

ファイル内の文字の検索

テキストファイルで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の答えよりも短い内容を得ることができるかどうか疑われます。他のツールにアクセスできる場合は、次のオプションがあります。

  1. 真珠

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

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

私が考えることができる他のアプローチは@jofelの3つのアプローチを使うべきです。

関連情報