понадобилось мне из шеловского скрипта разобрать 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>

Последние комментарии
10 лет 10 недель назад
10 лет 29 недель назад
10 лет 39 недель назад
10 лет 40 недель назад
11 лет 29 недель назад
11 лет 29 недель назад
11 лет 29 недель назад
11 лет 30 недель назад
11 лет 30 недель назад
11 лет 31 неделя назад