Показаны сообщения с ярлыком perl. Показать все сообщения
Показаны сообщения с ярлыком perl. Показать все сообщения

вторник, 19 марта 2013 г.

grep support for \d

A long time ago, when every PC had own OS, it was easy to remember, which RegEx are from POSIX standart, and which appeared only in Perl-style. Now it’s almost forgotten, and C# regexp classes don’t support POSIX character classes (like [:digit:]).

That’s why the debugging of a simple bash script is so difficult. grep is older then a lot of his users, he remembers all of these times and needs -P for Perl mode and ‘\d’ for digits support.

That’s how

ls | grep -e "[0-9][0-9].[0-9][0-9].md"

becames:

ls | grep -Pe "\d{2}.\d{2}.md"

суббота, 12 мая 2012 г.

Script: Привет из эры Web 1.0

Собрания всевозможных CMD, Perl и прочих скриптов на радость админам.

Включая совершенно немыслимый CMD-шник, который по датскому названию птицы выдаёт её латинское видовое название. Из Википедии, разумеется. Причём парсит Википедию... через JScript!

"Это невероятно".

вторник, 8 мая 2012 г.

Script: Скриптовая эволюция

Дано - написать скрипт, который кидает определённые файлы из локальной папки в папку на подключенном сетевом диске. Например, веб-проект, в котором мы изменили 2-3 dll. OS Windows.

На каком языке писать скрипт?

ActivePerl под Windows - иногда не принимает переданных параметров
Cygwin - нету
PowerShell - просто так даже Hello World не запустишь. Система будет ругаться, что он... не подписан (маразм? маразм!)

Похоже, технологии ушли слишком далеко. Нам остаётся только старый формат CMD файлов.

copydll.cmd:

@echo off
set FROM=d:\proj1\bin
set TO=W:\stable\proj1\bin
FOR %%A IN (%*) DO IF EXIST "%FROM%\%%A.dll" COPY /Y "%FROM%\%%A.dll" "%TO%\%%A.dll"

Добавляем папку в Path и вызываем

copydll Proj.Module1 Proj.Module2

А этот cmd можно кинуть на панель в Total Commander и просто перетаскивать туда нужный файл:

@echo off
set TO=W:\stable\proj1\bin
FOR %%A IN (%*) DO IF EXIST %%A COPY /Y %%A "%TO%\%%~nxA"

Конечно, можно просто перетащить на панель Total Commander'а саму папку, но тогда придётся дважды щёлкать мышкой (ОК в диалоге копирования и потом Replace All)

Да, ещё. Если написать в CMD-шке PAUSE, она в этом месте попросит Press any key to continue....

понедельник, 7 мая 2012 г.

Blog: Баг в ЖЖ

Продолжая тему перепостов - в ЖЖ обнаружен баг, позволяющий постить тексты намного длиннее разрешённых.

Дело в том, что если попытаться послать пост по e-mail (как это сделать - ищите в настройках. Там оно есть), то LJ то ли не будет проверять его размер, то ли будет проверять его по старому стандарту.

И пост благополучно уйдёт по назначению.

Писал на Хабр - НЛО статью отвергло. И правильно - неча умные вещи писать.

И, для изучение - Perl-скрипт для синхронизации Wordpress и Livejournal. Написано на Perl, запускать в cron.