[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

помогите с sed и подпрограммой



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

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  и как его правильно вставить в подстроку для замены не могу найти.

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

Спасибо.

-- 
С Уважением,
специалист по техническому и программному обеспечению,
системный администратор

Скубриев Владимир
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Россия, Ростовская область, г. Таганрог

тел. моб: +7 (918) 504 38 20
skype: v.skubriev
icq: 214-800-502
www: skubriev.ru 

Reply to: