Как вы используете grep, чтобы найти термины длиной n символов? - PullRequest
5 голосов
/ 22 мая 2010

Я использую grep для фильтрации файла слов словаря Mac OS X (по умолчанию находится в /usr/share/dict/words).

Я хочу использовать grep для получения всех слов длиной четыре символа. Как мне это сделать?

Моя лучшая догадка о том, как это сделать, была:

grep [:alpha:]{4} words

Но это возвращает ноль результатов.

Ответы [ 2 ]

14 голосов
/ 22 мая 2010

Должно быть:

grep -E '^[[:alpha:]]{4}$' words

Мы привязываем его (поскольку 5-буквенная строка также содержит 4-буквенную строку), а классы символов POSIX должны содержаться в выражении в скобках ([]). Кроме того, мы цитируем для оболочки. И его нужно расширять, поэтому -Е.

10 голосов
/ 22 мая 2010

Попытка вспомнить, сколько из языка регулярных выражений grep поддерживает ... делает

grep '^....$' words

работаешь на тебя? Обратите внимание, что, поскольку вы ищете файл словаря, я не уверен, что вам нужно ограничивать себя буквами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...