Я пытаюсь записать сценарий, который ищет словарь слова, которые содержат точно два случаев каждой буквы. Я просто не делаю синтаксиса к grep точно для двух случаев буквы.
Если Вы захотите найти точно два экземпляра где-нибудь, одним словом, то необходимо будет допускать произвольные несоответствующие строки прежде, между, и после символов соответствия.
например, найти целые слова, которые состоят точно из 2 экземпляров буквы q
, нечувствительно к регистру, в /usr/share/dict/words
:
$ grep -wi '[^q]*q[^q]*q[^q]*' /usr/share/dict/words
Albuquerque
Albuquerque's
Qiqihar
Qiqihar's
Если Вы не ограничены grep
а именно, Вы могли бы хотеть рассмотреть использование perl
где можно использовать то, это при оценке в скалярном контексте, tr
управляйте возвращает количество транслитераций, например.
perl -ne 'print if tr/qQ/qQ/ == 2' /usr/share/dict/words
В том же духе, с GNU awk, Вы могли определить символ интереса как полевой шаблон и протестировать количество полей:
gawk -vFPAT='[qQ]' 'NF==2' /usr/share/dict/words