Мне нужно отфильтровать все строки со словами, начинающимися с буквы, за которой следует ноль или более букв или цифр, но без специальных символов (в основном, имен, которые можно использовать для переменной c ++).
egrep '^[a-zA-Z][a-zA-Z0-9]*'
Это прекрасно работает для таких слов, как "a", "ab10", но также включает такие слова, как "b.b". Я понимаю, что * в конце выражения проблема. Если я заменю * на + (один или несколько), он пропускает слова, содержащие только одну букву, поэтому это не помогает.
EDIT:
Я должен быть более точным. Я хочу найти строки с любым количеством возможных слов, как описано выше. Вот пример:
int = 5;
cout << "hello";
//some comments
В этом случае должны быть напечатаны все строки выше, так как все они содержат хотя бы одно слово, которое соответствует описанным условиям, и строка не должна начинаться с буквы.