一部の英語の単語には、「tomorrow」や「better」などの「abba」構造が含まれています。与えられたファイルにそのような単語を含む行はいくつですか? grepを使ってこれらの単語を検索するには?
答え1
GNU grepでこれを試してください:
grep '\(.\)\(.\)\2\1' file | wc -l
答え2
似合うパターンをお探しの方回門- または同じ単語を前後に綴る場合 - GNUページを開き、次を見つけることもできgrep
ますinfo grep
。
Guglielmo Bondioniは、最大19文字のすべての回文を見つけるために9つのサブ式と9つの逆参照を使用するREを提案しました。
grep -xE '(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?).?\9\8\7\6\5\4\3\2\1'
これはGNU ERE拡張を使用して行われ、他の実装には移植できません
grep
。
...今一致しますアバ、しかしtomorrow
またはbetter
これら二つの言葉は両方ではないから回門。
移植性に関する注意事項は、特に拡張正規表現パターンで逆参照を使用することを意味すると思います。\{0,1\}
完全に移植可能な式モードを取得するには、各疑問符を置き換えるには、より多くのバックスラッシュとaが必要だと思います。
答え3
grep -xE '.+(.)(.)\2\1.+'
grep -xE '(.)(.)\2\1'