Использование grep для поиска слов - PullRequest
0 голосов
/ 18 апреля 2019

Найдите строки в alice.txt, содержащие не менее 17 слов.

Подсказка 1: чтобы проверить, закончилось ли слово, найдите следующее символы: [, ; : ’ .] (обратите внимание, что в списке также есть пробел)

Подсказка 2: ваш код должен возвращать 13 строк

Первая попытка выдает 15 слов вместо 17 и имеет 13 строк Вторая попытка ничего не дает, но я думаю, что общая идея верна, если я что-то упустил ...

Первая попытка:

grep -Ein "([a-z]+[, ;:'\.]){15,}" alice.txt

Вторая попытка:

grep -Ein "(\b[a-z]+\b){17,}" alice.txt

Ожидается, что результаты будут правильными, но в результате получилось только 15 модификаторов вместо 17, которые были запрошены в задаче. Код, однако, возвращает 13 строк

1 Ответ

0 голосов
/ 18 апреля 2019

Вот как на самом деле вы бы это делали в UNIX, используя GNU awk для FPAT:

awk -v FPAT='\\w+' 'NF>16'

, например:

$ echo 'foo bar, etc.' | awk -v FPAT='\\w+' '{print NF}'
3
$ echo 'foo bar, etc.' | awk -v FPAT='\\w+' 'NF>2'
foo bar, etc.
$ echo 'foo bar, etc.' | awk -v FPAT='\\w+' 'NF>3'
$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...