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

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



On 19.06.2013 01:30, dimas wrote:
sed -i '/^userPassword::/s/\(^userPassword:: \)\(.*\)$/\2/' /tmp/passwd
\2 - уже возвращает чисто само значение.
то есть "скрипт" меняет всю строку на само значение закодированное.
для начала, зачем эти сложности?
s/^userPassword:\ //
все! банальная же операция, отрезаем ненужное))
что означает обратный слэш после
s/^userPassword:
?


echo "e1NIQX1WN3k5OFpIMU9FMEQ2TFVFb0loSHRGaHkycVk9" | openssl enc -base64 -d
Возвращает нужный мне хэш пользователя ldap ).
в coreutils есть утилита base64, не надо никаких openssl (который еще не везде
есть) и тем более скриптов на баше, как ниже приводили.
вот это хорошо. спасибо. сам не догадался посмотреть


Но хотелось бы как то его выполнить прямо в контексте седа.
subscript=`четотам`
Я читал что про $subscript
Но как это называется в sed  и как его правильно вставить в подстроку 
для замены не могу найти.
а зачем? когда мне нужно строку заменить на результат выполнения какой-то
команды, я обычно юзаю что-то типа
echo "s/bla-bla-bla/$(echo sdg54SGDgsgGGXC4555 | base64 -d)/" | sed -f - -i input_file
в общем, сочиняем sed-скрипт на ходу и скармливаем его на stdin.
таких строк много это раз
значение на которое нужно поменять не определено заранее и зависит от того, что идет после 
userPassword::

Вот кусок исходного файла:

# anthropics, users, example.lab
dn: cn=anthropics,ou=users,dc=example,dc=lab
cn: Anthropics Client
cn: anthropics
description: Anthropics Client
gidNumber: 1901
homeDirectory: /home/anthropics
loginShell: /bin/bash
mail: anthropics@example.com
objectClass: simpleSecurityObject
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
sn: Anthropics
uid: anthropics
uidNumber: 2019
userPassword:: e1NIQX1vTzU2WHBYMlU3cmZFWkJpL3I4UGUvYjNyb0k9

# apotash01, users, example.lab
dn: cn=apotash01,ou=users,dc=example,dc=lab
cn: Adam Potash
cn: apotash01
description: Passenger monitoring project
gidNumber: 1901
homeDirectory: /home/apotash01
loginShell: /bin/bash
mail: apotash01@example.com
objectClass: simpleSecurityObject
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
sn: Potash
uid: apotash01
uidNumber: 2032
userPassword:: e1NIQX1rVGkyNVBYd3FOZlNURXZkT1d3Q1FPZGZ5OVk9



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

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

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

Reply to: