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

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



Владимир Скубриев -> 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 в таком раскладе
взяться неоткуда.


Reply to: