Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
15:04:2008, 12:44
|
|
Новенький ![]() Группа: Программист Сообщений: 2 Регистрация: 15:04:2008 Пользователь №: 16 650 Специализация: IT Репутация: 0
|
Люди добрые подскажите как правильно сделать замену символов в Perl. Задача такая, есть текстовый файл с огромным количеством строк:
"1111";"ИВАНОВ ИВАН ИВАНЫЧ";"П.СВЕТЛЫЙ, Д.22, КВ.11" "2222";"ПЕТРОВ ПЕТР ПЕТРОВИЧ";"П.ТЕМНЫЙ, Д.33, КВ.22" и т.д. нужно заменить (, Д.) на (";) Пытался тут чего то, но безуспешно. _____________________________________________________ open F1, $ARGV[0] or die "Error opening file $ARGV[0]\n"; open F2, ">result.txt"; while(<F1>) { # subst ($_,"\, Д\.","\"\;"); $str =~ s/\, Д\./\"\;/g; print F2;} close F2; close F1; _____________________________________________________ Подсобите пожалуйста. Народ советует замены в файлах большого размера делать именно на Perl, говорят так проще и быстрей, только помочь никто не может. Спасибо. |
|
Сообщение
#1
|
|
![]() |
|
|
15:04:2008, 22:02
|
|
Продвинутый ![]() ![]() Группа: Программист Сообщений: 198 Регистрация: 4:08:2006 Из: Vladivostok.pm Пользователь №: 5 749 Специализация: Perl, Web Репутация: 4
|
А чего вы хотели?
Считываете вы в переменную $_ и пишете из нее. А обрабатываете переменную $str; Замените: Код $str =~ s/\, Д\./\"\;/g; На: Код s/\, Д\./\"\;/g; И надейтесь, что у вас не возникнет проблем с кодировками. Сообщение отредактировал Vovochka - 15:04:2008, 22:10 |
|
Сообщение
#2
|
|
|
|
16:04:2008, 03:11
|
|
Новенький ![]() Группа: Программист Сообщений: 2 Регистрация: 15:04:2008 Пользователь №: 16 650 Специализация: IT Репутация: 0
|
Спасибо большое. Все работает.
Дай Вам Бог здоровья! |
|
Сообщение
#3
|
|
![]() |
|
Текстовая версия | Сейчас: 17:05:2008 - 05:08 |