|
11.Май, 2012
10.Май, 2012
10:19 - Генерация имен хостов для ssh-дополнений Перечитал zshexpn, приемы для работы с файлами.
В zsh можно сконфигурировать стиль для дополнений ssh, который по tab генерирует дополнения для, например, имени хоста. Логично брать их из ~/.ssh/config и ~/.ssh/known_hosts. ( продолжение )
|
9.Май, 2012
11:28 - JFYI В zsh появился новый флаг квалификации глобов — F, непустой каталог. Т. е. теперь можно удалить все пустые каталоги одной командой:
zsh# rmdir *(/N^F)
Легенда:
* — все файлы в текущем каталоге / — из них все каталоги N — если ничего не встретилось, то не генерим ошибку ^F — из оставшегося выбираем только пустые каталоги
Удобно. Время перечитать внимательно zshexpn и zshcontrib :).

|
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
#
|
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

|
25.Январь, 2012
10:26 - Задачка есть 2 бесконечно больших текстовых файла отсортированных лексикографически. Нужно найти разницу и записать в файлы. ( мое решение )
|
20.Январь, 2012
08:21 - Look-Around Assertions в операторе s/// До сих пор не задумывался на эту тему, но работает. Пример: Задание: Удалить все знаки «+», за которыми следует цифра.
# perl -le '$ARGV[0] =~ s#\+(?=\d)##g && print $ARGV[0]' "+test + +12 +13 ++"
+test + 12 13 ++
#

|
22.Декабрь, 2011
08:34 - Задачка про CIDR Отсюда: Задача такова: есть ASCIIZ-строка с IP-адресом, надо вернуть true, если этот адрес попадает в один из диапазонов, перечисленных в файле.
Файл текстовый такого формата,
192.168.1.3,192.168.1.5 192.168.2.4,193.0.0.3
Файл не отсортирован, дипапазоны произвольные и могут пересекаться. Первый адрес меньше второго или равен ему. Пересечение диапазонов можно обрабатывать двумя путями: лиюо отказываться грузить такой файл и выдавать что с чем пересеклось, либо не отказываться и корректно работать в таких условиях.
Файл грузится один раз и потом десятки миллионов раз лукапится. Записей в конфиге - сотни. ( Решение )
|
17.Ноябрь, 2011
07:59 - Версия пакета в package. Можно теперь писать так:
package Package 1.23;
...
print $VERSION, "\n";
...
1;
Но версия в таком операторе не вычисляется, там надо писать именно число. Т.е. такое выражение даст ошибку:
package Package qw$Revision: 1.23 $[1];
|
20.Октябрь, 2011
16:42 - разбор ini-файла Простейший ini-файл:
# Comment
Param1 = Value1
[Section1]
Param2 = Value2
LongParam = Very \
Long \
Param
[Section2]
Param3 = Value3
( однострочник: )
|
|
|
|
|
|
|
LiveJournal.com |