Вы читаете журнал [info]ocehb

11.Май, 2012


10:26 - если в слове хлеб сделать четыре ошибки...
то получится слово пиво.
Approximate Matching в zsh )
Tags:

(Оставить комментарий)

10.Май, 2012


10:19 - Генерация имен хостов для ssh-дополнений
Перечитал zshexpn, приемы для работы с файлами.

В zsh можно сконфигурировать стиль для дополнений ssh, который по tab генерирует дополнения для, например, имени хоста. Логично брать их из ~/.ssh/config и ~/.ssh/known_hosts.
продолжение )
Tags:

(Оставить комментарий)

9.Май, 2012


11:28 - JFYI
В zsh появился новый флаг квалификации глобов — F, непустой каталог.
Т. е. теперь можно удалить все пустые каталоги одной командой:

zsh# rmdir *(/N^F)

Легенда:

  • * — все файлы в текущем каталоге

  • / — из них все каталоги

  • N — если ничего не встретилось, то не генерим ошибку

  • ^F — из оставшегося выбираем только пустые каталоги


Удобно.
Время перечитать внимательно zshexpn и zshcontrib :).


Tags:

(2 комментария | Оставить комментарий)

2.Май, 2012


20:17 - Яндекс почта

# for i in {1..100}; do
  HEAD http://mailstatic.yandex.net/neo/1.12.9/v2/page/common.css | \
  head -1; done | grep 404 | wc -l; done
20
#

Tags:

(Оставить комментарий)

14.Февраль, 2012


23:42 - Нахождение простых чисел
решето эратосфена (числа не больше данного)
однострочник )

Прямое вычисление (количество чисел):
однострочник )

Ну и сравнение производительности:
Решето:
Real: 0.35s User: 0.32s System: 0.01s Percent: 97%% Cmd: perl -le 102400
Прямое вычисление:
Real: 17.65s User: 17.56s System: 0.00s Percent: 99%% Cmd: perl -le 9805


Tags:

(Оставить комментарий)

25.Январь, 2012


10:26 - Задачка
есть 2 бесконечно больших текстовых файла отсортированных лексикографически.
Нужно найти разницу и записать в файлы.

мое решение )
Tags:

(Оставить комментарий)

20.Январь, 2012


08:21 - Look-Around Assertions в операторе s///
До сих пор не задумывался на эту тему, но работает. Пример:
Задание: Удалить все знаки «+», за которыми следует цифра.

# perl -le '$ARGV[0] =~ s#\+(?=\d)##g && print $ARGV[0]' "+test + +12 +13 ++"
+test + 12 13 ++
#


(2 комментария | Оставить комментарий)

22.Декабрь, 2011


08:34 - Задачка про CIDR
Отсюда:
Задача такова: есть ASCIIZ-строка с IP-адресом, надо вернуть true, если этот адрес попадает в один из диапазонов, перечисленных в файле.

Файл текстовый такого формата,

192.168.1.3,192.168.1.5
192.168.2.4,193.0.0.3

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

Файл грузится один раз и потом десятки миллионов раз лукапится. Записей в конфиге - сотни.

Решение )
Tags: ,

(Оставить комментарий)

17.Ноябрь, 2011


07:59 - Версия пакета в package.
Можно теперь писать так:

package Package 1.23;
...
print $VERSION, "\n";
...
1;

Но версия в таком операторе не вычисляется, там надо писать именно число.
Т.е. такое выражение даст ошибку:

package Package qw$Revision: 1.23 $[1];

Tags:

(Оставить комментарий)

20.Октябрь, 2011


16:42 - разбор ini-файла
Простейший ini-файл:

# Comment
Param1 = Value1

[Section1]

Param2 = Value2
LongParam = Very \
                         Long \
                         Param

[Section2]
Param3 = Value3


однострочник: )
Tags:

(2 комментария | Оставить комментарий)

Записки проperl

> Свежие записи
> Архив
> Друзья
> Личная информация
> previous 10 entries

> previous 10 entries
> Go to Top
LiveJournal.com