Сам код: $ egrep '.*[A-Z][A-Z][A-Z][A-Z][A-Z].*' / -naR 2>/dev/null | head -n 10Подскажите в чем ошибка? преподаватель говорит, что ход решения верный, а что подправить в программе сказать не может...
> Сам код: $ egrep '.*[A-Z][A-Z][A-Z][A-Z][A-Z].*' / -naR 2>/dev/null | head -n 10
> Подскажите в чем ошибка?В том, что ты называешь это программированием.
> В том, что ты называешь это программированием.боюсь что ты дружок сел в лужу :) регекс это само по себе ни что иное как программирование алгоритма поиска!
> регекс это само по себе ничто иное как программирование алгоритма поиска!Скажем так: регекс - это и есть программа, компилируемая в FSA.
> Сам код: $ egrep '.*[A-Z][A-Z][A-Z][A-Z][A-Z].*' / -naR 2>/dev/null | head -n 10Если Вы правильно описали задание в теме, то такое командой egrep Вы найдете файлы содержащие 5 и более заглавных букв внутри файла, а что бы найти файлы состоящие из 5 и более заглавных букв, нужно использовать команду find.
Например так
find / -type f -name '*[A-Z][A-Z][A-Z][A-Z][A-Z]*'
>> Сам код: $ egrep '.*[A-Z][A-Z][A-Z][A-Z][A-Z].*' / -naR 2>/dev/null | head -n 10
> Если Вы правильно описали задание в теме, то такое командой egrep Вы
> найдете файлы содержащие 5 и более заглавных букв внутри файла, а
> что бы найти файлы состоящие из 5 и более заглавных букв,
> нужно использовать команду find.
> Например так
> find / -type f -name '*[A-Z][A-Z][A-Z][A-Z][A-Z]*'может быть хоть кто -то из вас таки прочитает условие, программисты хреновы :)
"состоящий из" и "содержащий" - это как бы кардинально разные задачи :)
hint + {}
* низя!
> "состоящий из" и "содержащий" - это как бы кардинально разные задачи :)Может быть объясните нам, о светлейший, что же именно хочет автор?
> Может быть объясните нам, о светлейший, что же именно хочет автор?постановка задачи удел таки ТС, я лишь указал на расхождение условий и решения ...
Автор хочет файлы (не имена) состоящие (а не содержащие) из 5+ символов диапазона А-Z.
> преподаватель говорит, что ход решения верный, а что подправить в программе сказать не может...Как уже заметили выше, "состоящий из" и "содержащий" - концептуально разные сущности. Поэтому ваш модерн-регекс (egrep же) должен выглядеть так:
"[A-Z]{5}[A-Z]*"С семантикой сами разберетесь.
> Как уже заметили выше, "состоящий из" и "содержащий" - концептуально разные сущности.ща программер слишком гордый, чтобы обращать внимание на астериски
> Поэтому ваш модерн-регекс (egrep же) должен выглядеть так:"[A-Z]{5}[A-Z]*"он как минимум должен выглядеть так (для решения поставленной задачи!): "^[A-Z]{5}[A-Z]*$" (это касательно только имен, без учета пути)
а лучше так: "^[A-Z]{5,}$"
> C семантикой сами разберетесь.
> он как минимум должен выглядеть так: "^[A-Z]{5}[A-Z]*$"
> а лучше так: "^[A-Z]{5,}$"Не все реализации понимают {5,} - это раз.
А два - ТС не нужен регексп, находящий файлы, у которых хотя бы одна строка состоит из апперкейса латиницы...
Но то такое, с опытом приходит :)
> Не все реализации понимают {5,} - это раз.хых, тут лишь бы ТС понимал, что вряд ли :)
> А два - ТС не нужен регексп, находящий файлы, у которых хотя
> бы одна строка состоит из апперкейса латиницы...вооооот, мы плавно подошли к вопросу "а куда нам теперь присунуть наш рэхэкс".
> Но то такое, с опытом приходит :)
> вооооот, мы плавно подошли к вопросу "а куда нам теперь присунуть нашНе не плавно. Пришли к тому, как сейчас тот препод посмеивается над "профессионалами", помогающими всем гуртом ленивому бездельнику. Вот где мастерство-то.
>> Но то такое, с опытом проходит :)
>> вооооот, мы плавно подошли к вопросу "а куда нам теперь присунуть наш
> Не не плавно. Пришли к тому, как сейчас тот препод посмеивается над
> "профессионалами", помогающими всем гуртом ленивому бездельнику. Вот где мастерство-то.Может, кому-то другому пригодятся regexp.
Может подскажите тестовые задачи для составления regexp?
А может и подскажете, где найти генератор таких заданий...
> Может подскажите тестовые задачи для составления regexp?
1) Muammar Qaddafi
2) Mo'ammar Gadhafi
3) Muammar Kaddafi
4) Muammar Qadhafi
5) Moammar El Kadhafi
6) Muammar Gadafi
7) Mu'ammar al-Qadafi
8) Moamer El Kazzafi
9) Moamar al-Gaddafi
10) Mu'ammar Al Qathafi
11) Muammar Al Qathafi
12) Mo'ammar el-Gadhafi
13) Moamar El Kadhafi
14) Muammar al-Qadhafi
15) Mu'ammar al-Qadhdhafi
16) Mu'ammar Qadafi
17) Moamar Gaddafi
18) Mu'ammar Qadhdhafi
19) Muammar Khaddafi
20) Muammar al-Khaddafi
21) Mu'amar al-Kadafi
22) Muammar Ghaddafy
23) Muammar Ghadafi
24) Muammar Ghaddafi
25) Muamar Kaddafi
26) Muammar Quathafi
27) Muammar Gheddafi
28) Muamar Al-Kaddafi
29) Moammar Khadafy
30) Moammar Qudhafi
31) Mu'ammar al-Qaddafi
32) Mulazim Awwal Mu'ammar Muhammad Abu Minyar al-Qadhafi
Это из gnu-grep, еслишо. А в сырцах PCRE лежит здоровенный нажористый тест-сьют.
> Не не плавно. Пришли к тому, как сейчас тот препод посмеивается над
> "профессионалами", помогающими всем гуртом ленивому бездельнику. Вот где мастерство-то.стоп стоп стоп - мы как бы нарочито не даем решения :) мы как бы тоже не жирные тролли :)
find /home | egrep -e '/[A-Z]{5,5}\.'Перед тестировнаием следует включить песню: "We are the champions, my friend".
> find /home | egrep -e '/[A-Z]{5,5}\.'
> Перед тестировнаием следует включить песню: "We are the champions, my friend".Не правильно.
1) система не только в /home
2) слишком много выделится энтропии
>> find /home | egrep -e '/[A-Z]{5,5}\.'
>> Перед тестировнаием следует включить песню: "We are the champions, my friend".
> Не правильно.
> 1) система не только в /home
> 2) слишком много выделится энтропииЗаменяем home на /
Даввим после точки еще несколько символов и знако конца строкиfind / | egrep -e '/[A-Z]{5,5}\.[a-z0-9]{1,100}$'
И снова споем песню
Добавим файлы без расширенийfind /home | egrep -e '/[A-Z]{5,5}\.[a-z0-9]{0,}$|/[A-Z]{5,5}$'
find / | egrep -e '/[A-Z]{5,5}\.[a-z0-9]{0,}$|/[A-Z]{5,5}$'Т.е. в итоге найдем все файлы из пяти букв в верхнем регистре, директории и файлы без расширений.
> find / | egrep -e '/[A-Z]{5,5}\.[a-z0-9]{0,}$|/[A-Z]{5,5}$'
> Т.е. в итоге найдем все файлы из пяти букв в верхнем
> регистре, директории и файлы без расширений.Поскольку в условии было из 5 и более, то увеличим область
find / | egrep -e '/[A-Z]{5,}\.[a-z0-9]{0,}$|/[A-Z]{5,}$'
ну все уже поняли что ты прочитал ман про регексы.
Нет, еще не все :)Я хочу, чтобы автор понял, что регулярные выражения надо полюбить :)
> Я хочу, чтобы автор понял, что регулярные выражения надо полюбить :)проповедуешь регексофилию?
>> Я хочу, чтобы автор понял, что регулярные выражения надо полюбить :)
> проповедуешь регексофилию?Да, это была шутка.
Преподаватели обычно так шутят: "вы должны полюбить мой предмет" .Особенно математики любят твердить, что надо любить уравнения .
> Да, это была шутка.
> Преподаватели обычно так шутят: "вы должны полюбить мой предмет" .
> Особенно математики любят твердить, что надо любить уравнения .Ну вот вы даже эту шутку не осилили - тут надо понимать кто и кого в итоге "любит".
- Что может быть проще регулярных выражений?
- Только регулярные выражения!