任意のコードを含むファイルがあります。各コードには10個の文字があり、ファイル内でその文字が複数回表示されるコードを見つけようとします。私はこれをやっています:
grep DD* [filename]
これにより、文字「D」が2回表示されるコードが検索されますが、「D」が1回表示されるコードも表示されます。 2回発生するコードのみを表示するように正規表現をどのように変更できますか?
答え1
*
正規表現は、前のエンティティが0回以上繰り返されることを示す数量子です。
数量子を削除します。
grep DD filename
上記は、「D」が3回以上表示される行とも一致します。
「D」だけでなく、任意の文字が複数回必要な場合:
grep -E '(.)\1' filename
「D」が正確に2回必要な場合:
grep -E '([^D]|^)DD([^D]|$)' filename