Показать сообщение отдельно

  #4  
Старый 26.11.2008, 20:47
[dei]
Участник форума
Регистрация: 24.11.2008
Сообщений: 205
Провел на форуме:
1123418

Репутация: 362
По умолчанию

пара перл скриптов, использовались при спаме vконтактe.

Удаление повторяющихся строк
Код:
#!/usr/bin/perl -w
# Удаление повторяющихся строк
# by [dei]
############ Config #############
$file = 'acs.txt';
#############################

open(F1,"< $file");

@lines = <F1>;
close F1;

for($i=0;$i<@lines;$i++) {
    for($i2=$i+1;$i2<@lines;$i2++) {
        if($lines[$i] eq $lines[$i2]) { splice @lines, $i2, 1; }
    }
}

open(F2,"> $file");
print F2 join('',@lines);
close F2;

Разбивка одного файла на равные мелкие файлы
Код:
#!/usr/bin/perl -w
# Разбивка файла на мелкие
# by [dei]
############ Config #############
$file = 'groups.txt';
$newname = 'groups.txt';#к имени прибавляется порядковый номер
$count = 10;
#############################
use POSIX qw(ceil);

open(FF,"< $file");

@lines = <FF>;
close FF;

$x = ceil(($#lines+1)/$count);

for($i=1;$i<=$count;$i++){
    $newname =~ s/([0-9]*|)\.txt/$i\.txt/;
    
    $f = F.$i;
    open($f,"> $newname");
    
    $n1 = $i * $x - $x;
    if($i==$count) { $n2 = $#lines+1; }
    else { $n2 = $i * $x; }
    
    for($i2=$n1;$i2<$n2;$i2++) {
        print $f $lines[$i2];
    }
}

Последний раз редактировалось [dei]; 26.11.2008 в 21:10..
 
Ответить с цитированием