URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9990
[ Назад ]

Исходное сообщение
"Как найти в системе файл, состоящий из 5 и более заглавных букв"

Отправлено Артем , 09-Апр-15 13:30 
Сам код: $ egrep '.*[A-Z][A-Z][A-Z][A-Z][A-Z].*' / -naR 2>/dev/null | head -n 10

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


Содержание

Сообщения в этом обсуждении
"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Vitaly_loki , 09-Апр-15 15:26 
> Сам код: $ egrep '.*[A-Z][A-Z][A-Z][A-Z][A-Z].*' / -naR 2>/dev/null | head -n 10
> Подскажите в чем ошибка?

В том, что ты называешь это программированием.


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Pahanivo , 09-Апр-15 20:32 
> В том, что ты называешь это программированием.

боюсь что ты дружок сел в лужу :) регекс это само по себе ни что иное как программирование алгоритма поиска!


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено DeadLoco , 11-Апр-15 02:45 
> регекс это само по себе ничто иное как программирование алгоритма поиска!

Скажем так: регекс - это и есть программа, компилируемая в FSA.



"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Алексей , 09-Апр-15 17:30 
> Сам код: $ 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]*'


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Pahanivo , 09-Апр-15 20:39 
>> Сам код: $ 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 и более заглавных букв"
Отправлено Алексей , 09-Апр-15 22:01 

> "состоящий из" и "содержащий" - это как бы кардинально разные задачи :)

Может быть объясните нам, о светлейший, что же именно хочет автор?


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Pahanivo , 10-Апр-15 08:36 
> Может быть объясните нам, о светлейший, что же именно хочет автор?

постановка задачи удел таки ТС, я лишь указал на расхождение условий и решения ...


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено DeadLoco , 11-Апр-15 03:02 
Автор хочет файлы (не имена) состоящие (а не содержащие) из 5+ символов диапазона А-Z.

"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено DeadLoco , 11-Апр-15 02:53 
> преподаватель говорит, что ход решения верный, а что подправить в программе сказать не может...

Как уже заметили выше, "состоящий из" и "содержащий" - концептуально разные сущности. Поэтому ваш модерн-регекс (egrep же) должен выглядеть так:

"[A-Z]{5}[A-Z]*"
С семантикой сами разберетесь.

"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Pahanivo , 11-Апр-15 21:10 
> Как уже заметили выше, "состоящий из" и "содержащий" - концептуально разные сущности.

ща программер  слишком гордый, чтобы обращать внимание на астериски
> Поэтому ваш модерн-регекс (egrep же) должен выглядеть так:"[A-Z]{5}[A-Z]*"

он как минимум должен выглядеть так (для решения поставленной задачи!): "^[A-Z]{5}[A-Z]*$" (это касательно только имен, без учета пути)
а лучше так: "^[A-Z]{5,}$"
> C семантикой сами разберетесь.


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено DeadLoco , 11-Апр-15 21:41 
> он как минимум должен выглядеть так: "^[A-Z]{5}[A-Z]*$"
> а лучше так: "^[A-Z]{5,}$"

Не все реализации понимают {5,} - это раз.
А два - ТС не нужен регексп, находящий файлы, у которых хотя бы одна строка состоит из апперкейса латиницы...
Но то такое, с опытом приходит :)


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Pahanivo , 11-Апр-15 22:42 
> Не все реализации понимают {5,} - это раз.

хых, тут лишь бы ТС понимал, что вряд ли  :)
> А два - ТС не нужен регексп, находящий файлы, у которых хотя
> бы одна строка состоит из апперкейса латиницы
...

вооооот, мы плавно подошли к вопросу "а куда нам теперь присунуть наш рэхэкс".
> Но то такое, с опытом приходит :)


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Andrey Mitrofanov , 11-Апр-15 23:18 
> вооооот, мы плавно подошли к вопросу "а куда нам теперь присунуть наш

Не не плавно. Пришли к тому, как сейчас тот препод посмеивается над "профессионалами", помогающими всем гуртом ленивому бездельнику. Вот где мастерство-то.

>> Но то такое, с опытом проходит :)


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено universite , 12-Апр-15 03:16 
>> вооооот, мы плавно подошли к вопросу "а куда нам теперь присунуть наш
> Не не плавно. Пришли к тому, как сейчас тот препод посмеивается над
> "профессионалами", помогающими всем гуртом ленивому бездельнику. Вот где мастерство-то.

Может, кому-то другому пригодятся regexp.

Может подскажите тестовые задачи для составления regexp?
А может и подскажете, где найти генератор таких заданий...


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено DeadLoco , 14-Апр-15 22:33 
> Может подскажите тестовые задачи для составления 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 лежит здоровенный нажористый тест-сьют.

"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Pahanivo , 12-Апр-15 20:37 
> Не не плавно. Пришли к тому, как сейчас тот препод посмеивается над
> "профессионалами", помогающими всем гуртом ленивому бездельнику. Вот где мастерство-то.

стоп стоп стоп - мы как бы нарочито не даем решения :) мы как бы тоже не жирные тролли :)


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Black_Ru , 24-Апр-15 23:13 
find /home | egrep -e '/[A-Z]{5,5}\.'

Перед тестировнаием следует включить песню: "We are the champions, my friend".


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено universite , 25-Апр-15 01:59 
> find /home | egrep -e '/[A-Z]{5,5}\.'
> Перед тестировнаием следует включить песню: "We are the champions, my friend".

Не правильно.
1) система не только в /home
2) слишком много выделится энтропии


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Black_Ru , 25-Апр-15 08:47 
>> 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}$'


И снова споем песню


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Black_Ru , 25-Апр-15 11:38 
Добавим файлы без расширений

find /home | egrep -e '/[A-Z]{5,5}\.[a-z0-9]{0,}$|/[A-Z]{5,5}$'


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Black_Ru , 25-Апр-15 11:42 
find / | egrep -e '/[A-Z]{5,5}\.[a-z0-9]{0,}$|/[A-Z]{5,5}$'

Т.е.  в итоге найдем все файлы из пяти букв в верхнем регистре, директории и файлы без расширений.



"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Black_Ru , 25-Апр-15 11:45 
> 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,}$'


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Pahanivo , 25-Апр-15 13:47 
ну все уже поняли что ты прочитал ман про регексы.

"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Black_Ru , 25-Апр-15 14:25 
Нет, еще не все :)

Я хочу, чтобы автор понял, что регулярные выражения надо полюбить :)


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Pahanivo , 25-Апр-15 21:16 
> Я хочу, чтобы автор понял, что регулярные выражения надо полюбить :)

проповедуешь регексофилию?


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Black_Ru , 25-Апр-15 23:09 
>> Я хочу, чтобы автор понял, что регулярные выражения надо полюбить :)
> проповедуешь регексофилию?

Да, это была шутка.
Преподаватели обычно так шутят: "вы должны полюбить мой предмет" .

Особенно математики любят твердить, что надо любить уравнения .


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Pahanivo , 26-Апр-15 20:41 
> Да, это была шутка.
> Преподаватели обычно так шутят: "вы должны полюбить мой предмет" .
> Особенно математики любят твердить, что надо любить уравнения .

Ну вот вы даже эту шутку не осилили - тут надо понимать кто и кого в итоге "любит".


"Как найти в системе файл, состоящий из 5 и более заглавных букв"
Отправлено Black_Ru , 26-Апр-15 23:01 
- Что может быть проще регулярных выражений?
- Только регулярные выражения!