On Wed, Jun 19, 2013 at 04:58:07PM +0400, Владимир Скубриев wrote: > 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 > > Вариант 2. Версия вашего предложения без хардкодинга "userPassword" > sed -ir 's/(.*:: )(.*)/echo -n "\1"; echo \2 | base64 -d/e' /tmp/passwd > > Ругаеться на > sed: -e expression #1, char 49: invalid reference \2 on `s' command's RHS > > Что тут не так не знаете ?
опция -i подразумевает наличие необязательного параметра: -i[SUFFIX] не соединяйте её с другими опциями. т.е.: sed -i -r ... -- wbr, alexander barakin aka sash-kan. -- i will be very thankful to you if you will use natural for the human order: first question, then the answer.
signature.asc
Description: Digital signature