Тема: My Releases
Показать сообщение отдельно

  #10  
Старый 21.03.2007, 16:16
flipper
Участник форума
Регистрация: 05.09.2006
Сообщений: 184
Провел на форуме:
888851

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

Теперь увлекся перлом. Все делается намного проще:
Dump'er:
Код:
#!/usr/bin/perl -w
if ($ARGV[0] eq "") {print "Example: perl dump.pl Clients.sql"; exit;}
open (f1,$ARGV[0]) || die $!;
open (f2,">log") ||die $!;
if ($ARGV[1] eq "") {
  $s=<f1>;
  $s=~s/\'//g;
  @temp=split(",",$s);
  for ($i=0;$i<$#temp;$i++){
     print "$i-$temp[$i]\n"; } #for
   print "\nExample: perl dump.pl Clients.sql 4-6-15-20";
   exit;
  } #if
@temp = split("-",$ARGV[1]);
while (<f1>) {s/\'//g; #s/\s\'//g;
  (@temp2)=(split(",",$_))[@temp];
   print f2 join(":",@temp2). "\n";
 }  #while
close(f1);
close(f2);
Запускаем: "perl dump.pl Clients.sql 4-6-15-20"
Clients.sql - имя сортируемого файла, 4-6-15-20 номера колонок через "-" (узнать можно запустив только "perl dump.pl Clients.sql ").

Сортировка файла с удалением повторяющихся элементов:
Код:
#!/usr/bin/perl -w
if ($ARGV[0] eq "") {print 'sort.pl filename'; exit;}
open (f1,$ARGV[0]) || die $!;
open (f3,">sorted") ||die $!;
%seen=();
@uniq=grep {! $seen{$_} ++ } <f1>;
print f3 sort @uniq;
close(f1);
close(f3);
Запускаем: "sort.pl filename"

Последний раз редактировалось flipper; 22.03.2007 в 22:22..
 
Ответить с цитированием