grepは、同じ単語で2回現れる文字のペアを探します。

grepは、同じ単語で2回現れる文字のペアを探します。

同じ単語に2回現れる文字のペアを持つ単語を見つける正しい表現は何ですか?これは私が使っているgrepですが、うまくいかないようです。

grep -E '(.{2}).*\1' input

入力例:

tea sea
halal
unix
linux
Mississippi

出力は次のとおりです。

halal
Mississippi

ベストアンサー1

grep -E '(..).*\1' input

したがって、式は次のようになります。

  NODE                     EXPLANATION
  (                        group and capture to \1:
    .                        any character except \n
    .                        any character except \n
  )                        end of \1
  .*                       any character except \n (0 or more times
                           (matching the most amount possible))
  \1                       what was matched by capture \1

おすすめ記事