Рейтинг:0

Найти определенное количество заглавных слов рядом друг с другом

флаг ci

Допустим, у меня есть файл .txt:

Ааа
Ааа Ббб
Ааа Bbb Ccc

Я хочу найти строку, в которой есть одно слово с заглавной буквы, два слова с заглавной буквы и три слова с заглавной буквы. Таким образом, один grep находит Aaa, один grep находит Aaa Bbb и один grep находит Aab Bbb Ccc. Это нужно сделать, чтобы grep, который находит Aaa Bbc, не нашел тот, у которого есть Aaa Bbb Ccc (потому что в нем одни и те же слова). ТАК:

1 группа 
**Ааа**

2 группа
**Ааа Ббб**

3 группа
**Ааа Ббб Ссс**

Это означает, что первый grep не может найти Aaa во втором и третьем и так далее. Они должны работать, только если одна, две или три буквы начинаются с прописной буквы.

С уважением Андерс

bac0n avatar
флаг cn
Последняя часть противоречит тому, что показано в примере.
bac0n avatar
флаг cn
`grep -Pwo '^([^a-z]*[A-Z]\w*\b){1}[^A-Z]*$' text.txt | grep -Ev '[A-Z]{3,}'` был лучшим, что я мог, по крайней мере, с grep не думаю, что это возможно сделать с помощью одного grep
Anders Begtorp avatar
флаг ci
Мне нужно найти имена и сосчитать их.Поэтому мне нужно найти, например, сколько существует «Джон», «Джон Джонсен» и «Джон Джонсон Джонни».
Anders Begtorp avatar
флаг ci
@ bac0n ваш пример подходит для первого Джона (и исключает Джона Джонсена и Джона Джонсона Джони, что приятно!). Теперь мне просто нужно выяснить то же самое для двух других
Anders Begtorp avatar
флаг ci
Но редактирование {1} на {2} и {3} также делает работу! Спасибо :-)
Anders Begtorp avatar
флаг ci
@ bac0n Вы знаете, как это делать рядами? Например, найти это (потому что в нем есть три строки, начинающиеся с заглавной буквы): Aaa (новая строка) Bbb (новая строка) Ccc
bac0n avatar
флаг cn
Если я вас правильно понял, вы можете получить счет от второго `grep -Evc '[A-Z]{3,}'`
флаг in
Это звучит как домашнее задание
Will avatar
флаг id
Почему вы хотите это сделать?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.