ВНИМАНИЕ! На форуме начался конкурс - астрофотография месяца - МАЙ!
0 Пользователей и 1 Гость просматривают эту тему.
perl searchreplace.pl файл_источник.txt файл_результат.txt "что_найти" "на_что_заменить"
#поиск с заменой в больших файлах#аналог консольной команды perl -i_.txt -pe 's/\r\n/\n/' result.txt с поддержкой binmodeif (@ARGV) {$source=$ARGV[0]; #файл источник$result=$ARGV[1]; #файл результат$from=$ARGV[2]; #что искать$to=$ARGV[3]; #на что заменить$from =~ s/([\W])/\\$1/sg;if (open(SOURCE, $source)) {local $/ = "\n";@sourcetext = <SOURCE>;close (SOURCE);open(RESULT, ">$result");binmode (RESULT);foreach $text (@sourcetext) { $text =~ s/$from/$to/g; print RESULT "$text";}close (RESULT);}}
Зачем какие-то текстовые редакторы для замены в файлах? тем более больших...!!!cat file.txt | sed s/'что заменить'/'на что заменить'/g > out.txtи как-бы все...
perl -i_.txt -pe 's/что_заменить/на_что_заменить/' result.txt
и где же качнуть емакс под винду?
Я использую Notepad++
Цитата: Galaxy Master от 06 Мар 2011 [22:49:37]Зачем какие-то текстовые редакторы для замены в файлах? тем более больших...!!!cat file.txt | sed s/'что заменить'/'на что заменить'/g > out.txtи как-бы все...Это в Unix. Речь идет под Windows.Под Windows тоже можно использовать команду-oneliner Perl для поиска с заменой в больших файлах.Код: [Выделить]perl -i_.txt -pe 's/что_заменить/на_что_заменить/' result.txtно в результате у файла Perl автоматом добавляет CR LF в конце каждой строки, что в некоторых случаях не желательно. К тому же, некоторые спецсимволы из командной строки в Windows передать не удастся в силу специфических особенностей командного процессора. Поэтому я написал скрипт, выложенный выше. Он работает примерно в 1,5 раза медленнее oneliner-команды Perl.