Немного магии sed Ж:-)
Несколько забавных примеров:
$ echo metric | sed -e strictest metes $ echo dated | sed -e statement demented $ echo routing | sed -e stoutest resting $ echo face | sed -e secede fade $ echo ontology | sed -e sentence oncology
Для тех кто не понял подсказка Ж:-)
SUSv3 по этому поводу:
"Any character other than backslash or can be used instead of
a slash to delimit the BRE and the replacement."
- Добавить комментарий
- 2011 просмотров
Страница для печати


Ежели охота найти все такие волшебные подстановки, то вот скрипт, который их ищет: funny_sed.sh.
При прогоне на машине, где в файле /usr/share/dict/words было 45378 слов, было найдено 656 "магических" подстановок. Большая часть из них тривиальна, но есть и забавные, например
echo cat | sed -e 'statement' gives cement
Полный список можно посмотреть тут: funny_list.txt.
вот такой вот баг в скрипте..
====
echo domesticity | sed -e 'seepage' gives
sed: -e выражение #1, символ 0: нет предыдущего регулярного выражения
====
никак немогу до конца прогнать Ж:-)
надо подумать как оптимизировать йенто дело..
--
Signature invent in progress 20% #.........
Несколько более быстрый ;) вариант программы для поиска магических слов написанный на перле здесь. Улучшенная версия на баше тут (которая все равно в 20 раз уступает перлу).
никак руки не дойдут посмотреть подробнее Ж:-\
но за новую версию спастбо Ж:-)
--
Signature invent in progress 20% #.........
странно, почему-то на вебе оказалась старая версия скрипта. слово seepage вообще не должно было тестироваться. там еще в самом начале надо заменить в grep -E '^s(.).*\1.*\1$' "$dictionary" регулярку на '^s(.).+\1.*\1$'. у меня быстро отработало, минут 15.
не сильно у меня убыстрилось.. опять до конца так и не дошло Ж:-\
--
Signature invent in progress 20% #.........
очень странно. версия на баше конечно тормозит по страшному, это правда. но перл-то должен отработать в течение минуты, ну двух максимум. На одно слово тратит у меня порядка двух секунд, а слов таких около 30.
я пока проверить не могу, сижу безлошадный перебиваюсь тут как могу..
словари похоже у меня побольше были Ж:-)
проверю как смогу..
--
Signature invent in progress 20% #.........
маньяки кто писал Ж:-)
только не везде есть grep -E
никто не в курсе есть words только с русскими словами готовый?
была идея сбецать скрпит поиска рифмы к слову Ж:-D
--
Signature invent in progress 19% #.........
да, и кстати чем не годятся словари, поставляемые скажем с aspell?
наверное потому что aspell бинарный формат и лом разбиратся
вот например теже words для украинского есть, а для русского ненашел Ж:-\
--
Signature invent in progress 20% #.........
писал ессно я. тока /me не маньяк. а grep -E у меня есть.
аа.. тогда хоть копирайты минимальные тогда оставляй, а то страна не узнает своих героев Ж:-)
на маньяка не обижайся, я по доброму Ж:-)
а насчет grep -E, я потому зацепился так как sed такое умеет \(.\).*\1 в s///
запустил досих пор работает Ж:-)
--
Signature invent in progress 20% #.........