Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Регулярные выражения > Замена строки в файле


Автор: TwiSteR 29.11.2009, 11:03
Приветствую уважаемые,
Необходимо заменить строку в файле.
Вот так пробую
Код

system("/usr/bin/perl -pi -e 's/(Email username\@".$old_domain.")/Email username\@".$new_domain."/i' ".$FILE);


Но проблема в том, что не работает такое с символом @ если заменять без @ то все нормально.
Подскажите плиз.

Автор: admsasha 29.11.2009, 12:13
TwiSteR, проверил твой код у себя, у меня всё работает. заменяется. Единственное отличие, я запускал с bash, а ты, судя по всему, с какого то скрипта на perl ?

Автор: admsasha 29.11.2009, 12:28
Если через скрипт perl, то так попробуй
system("/usr/bin/perl -pi -e 's/(Email username\\@".$old_domain.")/Email username\\@".$new_domain."/i' ".$FILE);


Автор: TwiSteR 29.11.2009, 12:45
admsasha, 
Да запускаю тоже из Perl скрипта. Спасибо добавил обратный слеш заработало.
Хотя вчера тоже добавлял не работало, но может просто уже заработался до 3 ночи вот и крыша ехала.
Сенкс.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)