Владимир Скубриев -> debian-russian@lists.debian.org  @ Wed, 19 Jun 2013 
16:58:07 +0400:

 ВС> On 19.06.2013 15:37, alexander barakin wrote:

 ВС> Можно еще маленький вопросик. Решил переписать для большей универсальности 
-
 ВС> работает:

 ВС> sed -i '/^.*::.*/s/\(^.*:: \)\(.*\)/echo -n "\1"; echo "\2" | base64 -d/e'
 ВС> /tmp/passwd

 ВС> Далее решил потренироваться и переписать с  -r

 ВС> Но вот не задача - ругается не могу понять в чем причина

 ВС> Вариант 1. Практически копия верхней команды только без символов 
экранирования
 ВС> с -r уже не пашет
 ВС> sed -ir '/^.*::.*/s/(^.*:: )(.*)/echo -n "\1"; echo \2 | base64 -d/e'
 ВС> /tmp/passwd

 ВС> Ругаеться на
 ВС> sed: -e expression #1, char 59: invalid reference \2 on `s' command's RHS

В том варианте, с которого вы копируете, написано \( и \).  А у вас -
просто ( и ).  Это не группирующие скобки, это просто символы скобок.
На что sed, в общем, справедливо замечает, что \2 в таком раскладе
взяться неоткуда.


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87ehby871b....@wizzle.ran.pp.ru

Ответить