#!/usr/bin/perl
#
# Skrypt zlicza ile kazdych linijek jest w pliku... zabawy z perlem :]
#
# Sciskailicz.0.1
# bierze z pliku i zlicza kolejne linijki czy sie nie powtarzaja...
# Dedykuje ten skrypt mojej przyszlej wspanialej kobiecie oraz osobom,
# ktore o 5 tej rano kiedykolwiek instalowaly uszczelki na okna... :]
# 0.5 duzy skok mryga zmiana enginu i w ogole wszystkiego w zasadzie
# caly pomysl od Sobiecha sciagniety z glowy i chuj ogolnie rzecz biorac
# bardzo ladnie zlicza tylko powoli ... dorobic jeszcze tr " " "\n" < plik
# pozniej sort -r wynik liczenia.. itd..
# walcze walcze zobaczymy w koncu nowe tysiaclecie...a le qpe mi sie chce
# no jest 16 zero zero czasu Ziemii 9 stycznia mysle, ze jest dobrze
# 0.6 juz mryga wszystko praktycznietylko jeszcze na brudno ale zlicza to
# co trzeba a to co juz bylo omija.. teraz tylko sobie pliki pomocnicze
# sam niech natworzy i pokasuje pozniej momentos :]
# co raz lepiej juz tylko z pliku dupa wynik dupa4 musze jeszcze tr owanie
# zrobic i pozniej juz z komend sie bedzie uruchamialo :] 
#
# Ponownie zabieramy sie do pracy. Wszystko ma dzialac jak powinno :]
# a caly plan wyglada nastepujaco. Kazda linijke najpierw sprawdza
# czy nie bylo w plik3 czyli tam gdzie zapisywane jest juz sprawdzone
# wyrazy. Jesli nie ma jedzie dalej. Bierze wyraz i sprawdza go ile razy
# jest w $plik2. Zlicza to, na koncu dodaje do $plik3 wychodzi. koniec.
# 0.7 Mrygez. Tylko nie ma $plik3 na razie generowania i sprawdzania wiec
# duplikaty tez sprawdza. Zaraz poprawic...aaa dorobic na koncu ify czy nie
# ma plikow takich co on tworzy sobie. zeby bylo secure da szef.
# 20 marzec trochu pozniej ale wazne ze do przodu . mryga spoko na razie 0.75
# no 8.0 ale powolne to jak szyna danych 8 bitowa ;]]

if (!$ARGV[0])
{ print "Sciskajilicz 0.8       kaneda\@bohater.org\n"; print "Jako parametr podaj plik do zliczenia...\n";exit }
if (! -e $ARGV[0])
{ print "Nie istnieje $ARGV[0]...\n"; exit } 

$plik = $ARGV[0];
$plik2 = $ARGV[0] . "__2";
$plik3 = $ARGV[0] . "__3";
$plik4 = $ARGV[0] . "__4";
$plik5 = $ARGV[0] . "_wyniki";
$plikt = $plik . "__t";
system ("tr [:blank:] '\n' < $plik > $plikt");
rename ($plikt , $plik);
system("cp $plik $plik2");


$jest = 0;
$ile = 0;
###############
  open(DATA,"$plik");
     while (<DATA>) {

($linia) = split(/\n/);

open(DATA3,"$plik3");
	while (<DATA3>) {
       ($linia2) = split(/\n/);
if ( $linia eq $linia2 )
{  $jest = 1; close(DATA3) }
 else
{  $jest = 0;  }
}	
close(DATA3);


#### Jezeli nie ma w plik3 jedziemy liczenie
if ($jest == 0)
{
$ile = 0;


open(DATA2,"$plik2");
	while (<DATA2>) {
       ($linia2) = split(/\n/);
if ( $linia2 eq $linia )
{ 
$ile++; 
}
}	
close(DATA2);

# Jesli tylko raz, zliczone zapisuje do pliku...
if ($jest == 0)
{ 
open(DATA4,">>$plik4");
print (DATA4 $ile,"=",$linia,"\n");
close(DATA4);
}
# Po sprawdzeniu ma zapisac do $plik3...

open(DATA3,">>$plik3");
print (DATA3 $linia,"\n");
close(DATA3);


}
####
}
close(DATA);

###############

system ("sort -n -r < $plik4 > $plik5 ");
system ("rm $plik2 $plik3 $plik4");
print "\nWyniki znajda Panstwo w:   $plik5\n";
