Re: помогите с sed и подпрограммой
Владимир Скубриев -> debian-russian@lists.debian.org @ 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.
Reply to: