Как делают меня grep для слов с точным количеством случаев буквы?

Я пытаюсь записать сценарий, который ищет словарь слова, которые содержат точно два случаев каждой буквы. Я просто не делаю синтаксиса к grep точно для двух случаев буквы.

0
задан 10 April 2018 в 07:55

1 ответ

Если Вы захотите найти точно два экземпляра где-нибудь, одним словом, то необходимо будет допускать произвольные несоответствующие строки прежде, между, и после символов соответствия.

например, найти целые слова, которые состоят точно из 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
3
ответ дан 30 October 2019 в 02:59

Другие вопросы по тегам:

Похожие вопросы: