ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |

26.03.2010, 05:45
|
|
Новичок
Регистрация: 09.03.2010
Сообщений: 18
Провел на форуме: 212415
Репутация:
2
|
|
Заменить слова рандомно
Имеется текст, пример:
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
- именно с такими повторениями. Так вот, нужно чтобы каждое слово "картофеля" было заменено рандомно (произвольно)...
и должно получится что-то типо:
"двести килограмм картофеля сняли"
"двести килограмм фываавааа сняли"
"двести килограмм ывафыпрл сняли"
"двести килограмм упцуйцу сняли"
"двести килограмм ыпвпфыпвп сняли"
и т.п... думаю, смысл понятен=)))))))))
В общем, кто возьмётся и за какую плату=)) нужен такой вот автозаменщик-) или подскажите, где воспользоваться)
Благодарю!
ICQ#: 640-000-342
Последний раз редактировалось skagen2; 26.03.2010 в 05:49..
|
|
|

26.03.2010, 09:09
|
|
Новичок
Регистрация: 27.09.2009
Сообщений: 28
Провел на форуме: 404511
Репутация:
0
|
|
Набросал тут на Perl немного:
#!/usr/bin/perl
use strict;
use Getopt::Long;
my $source_file = "";
my $set_of_world = "";
my $result_file;
my @set_of_world = ();
GetOptions("source=s" => \$source_file,
"set=s" => \$set_of_world,
"result=s" =>\$result_file);
unless ($source_file && $set_of_world ) {
Usage();
}
open(fd_set, "$set_of_world");
while(<fd_set>) {
chomp $_;
push @set_of_world, $_;
}
close(fd_set);
open(fd_source, "$source_file") or die "Can't open $source_file: $!\n";
if(defined($result_file)) {
open(fd_result, ">$result_file");
}
while(<fd_source>) {
chomp $_;
my($a, $b, $c, $d) = split(' ', $_);
if(defined($result_file)) {
print fd_result "$a $b ".$set_of_world[rand @set_of_world]." $d\n";
}
else {
print "$a $b ".$set_of_world[rand @set_of_world]." $d\n";
}
}
if(defined($result_file)) {
close(fd_result);
}
close(fd_source);
sub Usage() {
print "Usage: perl ./script.pl --source=source.txt --set=set.txt [--result=result.txt]";
exit 0;
}
|
|
|

26.03.2010, 13:59
|
|
Новичок
Регистрация: 09.03.2010
Сообщений: 18
Провел на форуме: 212415
Репутация:
2
|
|
А что скачать - не подскажете?
|
|
|

26.03.2010, 14:01
|
|
Участник форума
Регистрация: 27.04.2009
Сообщений: 189
Провел на форуме: 1141766
Репутация:
69
|
|
ActivePerl, скачай и установи.. потом создай файл name.pl .. и запускай Пуск -> Выполнить -> cmd .. там пиши путь до скрипта и жми enter
|
|
|

26.03.2010, 14:07
|
|
Новичок
Регистрация: 27.09.2009
Сообщений: 28
Провел на форуме: 404511
Репутация:
0
|
|
Качаете ActivePerl . Ставите. Копируете скрипт отсюда. В файлике source.txt - то, что надо поменять. В файле set.txt - набор рандомных слов. Кладете все это файло в одну папку со скриптом и запускаете:
perl script.pl --source=source.txt --set=set.txt
На консоль выпадет результат.
Если хотите, чтобы резалт падал в файл, то запускаете вот так:
perl script.pl --source=source.txt --set=set.txt --result=result.txt
Все!)
|
|
|

26.03.2010, 14:27
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
А зачем тут что-то заменять, если можно сразу генерировать то, что тебе нужно..?!
Код:
#!/usr/bin/perl
$n = 20; # нужное количество строк
$txt_do = 'двести килограмм'; # текст до рандомного слова
$txt_posle = 'сняли'; # текст после рандомного слова
open(OUT, "> out.txt");
for($i = 1; $i <= $n; $i++)
{
$rndword = join('', map(('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ь','ы','ъ','э','ю','я')[rand(33)], (1..7)));
print OUT $txt_do.' '.$rndword.' '.$txt_posle."\n";
}
close(OUT);
Результат:
Код:
двести килограмм фцддонм сняли
двести килограмм мчемямц сняли
двести килограмм цьэфэтю сняли
двести килограмм иъашывс сняли
двести килограмм изщюциж сняли
двести килограмм вшдтькъ сняли
двести килограмм зуёцпфж сняли
двести килограмм юмьцёць сняли
двести килограмм сэёсорй сняли
двести килограмм бгхрчьх сняли
двести килограмм нвжншэв сняли
двести килограмм епюялди сняли
двести килограмм гысъпщг сняли
двести килограмм нзлшэжю сняли
двести килограмм ъчёлвъс сняли
двести килограмм нжздеыл сняли
двести килограмм нлвлъеъ сняли
двести килограмм геяуалю сняли
двести килограмм еъёъйоы сняли
двести килограмм шиийзюэ сняли
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|