понадобилось мне из шеловского скрипта разобрать base64
пользовать для этого перл - из пушки по воробьям
на yandex://awk+base64 сразу нашелся скрипт, но как быстро выяснилось он не правильный
вскрытие показало - массив алфавита криво создается, ну я поправил это, чуть сократил его:
<div class='indent'>#!/bin/awk -f
{
for(i=0;i<length;k++){
if(c=index("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",substr($0,++i,1))){
c--
if(k%=4)printf("%c",z*4**k+(k<3?(c-(z=c%(a=16/k**k)))/a:c))
else z=c
}
}
}</div>
вдруг кому понадобится :)
рабочий день закончился, трахать его дальше мне лень, пойду пить пиву и переписывать его на баше
WhiteDragon: base64 awk
Драгон, я так понял ты люг с багтраком перепутал :)
Ничего-ничего, пусть пишет человек. :)
Хотя насчет оборота "пользовать для этого перл - из пушки по воробьям" - чесгря не понял. На перловке use Mime::Base64; encode_base64(); писать гораздо приятнее и короче, чем ковыряться с awk. Да и работает быстрее.
[quote=Sheridan]Драгон, я так понял ты люг с багтраком перепутал :)[/quote]
нет, ничо я не перепутал :), просто задача давольно типичная - авось комунить пригодиться :)
[quote=Zmey]Ничего-ничего, пусть пишет человек. :)
Хотя насчет оборота "пользовать для этого перл - из пушки по воробьям" - чесгря не понял. На перловке use Mime::Base64; encode_base64(); писать гораздо приятнее и короче, чем ковыряться с awk. Да и работает быстрее.[/quote]
ды дело в том что раскодировать надо было мелкий кусочек - посему в скорости я бы только потерял на поднятии перла на это, да и если уж цеплять перл - так мне проще полностью на нем писать ибо его я знаю порядком лучше тогоже баша и авк :) (собственно это вообще я к авк первый раз прикоснулся)
в довесок я еще не люблю модули юзать :) даже на перле бы я написал бы всеравно сам, а это было бы медленнее чем из xs :)
да и фиолетово - сейчас все это раскапывается прямо башем в том же скрипте :)
http://paste.org.ru/?bwdz4c
<span class='smallblacktext'>[ Редактирование 06.07.2006 - 13:01:44 ]</span>
Последние комментарии
9 лет 34 недели назад
10 лет 1 неделя назад
10 лет 11 недель назад
10 лет 11 недель назад
11 лет 1 неделя назад
11 лет 1 неделя назад
11 лет 1 неделя назад
11 лет 2 недели назад
11 лет 2 недели назад
11 лет 3 недели назад