Владимир Скубриев -> [email protected]  @ Tue, 18 Jun 2013 
17:49:32 +0400:

 ВС> Есть файл в котором есть строки на подобии этой:

 ВС> userPassword:: e1NIQX1WN3k5OFpIMU9FMEQ2TFVFb0loSHRGaHkycVk9

 ВС> Это значение справа - в кодировке base64.

 ВС> Его нужно раскодировать.

 ВС> Начал писать sed скрипт и застопорился на том, как мне найденную подстроку
 ВС> теперь преобразовать и именно на результат преобразования заменить

 ВС> sed -i '/^userPassword::/s/\(^userPassword:: \)\(.*\)$/\2/' /tmp/passwd

 ВС> \2 - уже возвращает чисто само значение.

 ВС> то есть "скрипт" меняет всю строку на само значение закодированное.

 ВС> теперь я хотел бы его передать чему то, что вернуло бы раскодированное
 ВС> значение.

 ВС> идея была использовать openssl, правда он у меня кое что лишнее возвращает
 ВС> пока - но не беда разберусь. (ругается при запуске на WARNING: can't open
 ВС> config file: /usr/lib/ssl/openssl.cnf )

 ВС> echo "e1NIQX1WN3k5OFpIMU9FMEQ2TFVFb0loSHRGaHkycVk9" | openssl enc -base64 
-d

 ВС> Возвращает нужный мне хэш пользователя ldap ).

 ВС> Но хотелось бы как то его выполнить прямо в контексте седа.

 ВС> subscript=`четотам`

 ВС> Я читал что про $subscript

 ВС> Но как это называется в sed  и как его правильно вставить в подстроку для
 ВС> замены не могу найти.

 ВС> Есть подозрение, что это не будет работать, тогда подскажите пожалуйста как
 ВС> правильней?

sed, помнится, делать так не умеет.  Стоит взять perl.


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Ответить