Pliki regularne o tej samej zawartości - skrypt, pomocy :(

0

Witajcie!
Jestem zieloniutki w pisaniu skryptów pod Linuxa a musze na jutro napisać taki:

W zadanym drzewie katalogów znajdź pliki regularne o identycznej zawartości.

Facet mówił mi że ma być wykorzystana funkcja cmp lub comp - jakoś tak i nie może być zrobina pętla w pętli bo przy większej ilości plików szukanie będzie trwało długo.
W prawdzie mam tu napisany skrypt ale właśnie nie tak jak chce nauczyciel:(
Popatrzcie sami i spróbujcie go napisać jak opisałem wcześniej. PROSZE O POMOC!!

!/bin/sh

for pl1 in $pliki
do
for pl2 in $pliki
do
# sprawdzamy, czy to nie jest ten sam plik i czy pliki sa identyczne
if [ ! $pl1 -ef $pl2 ] && diff $pl1 $pl2 > /dev/null
then
echo $pl1 $pl2
fi
done
done

Jeśli znajdziecie jakieś błędy to poprawcie. Dzięki bardzo.

0
!/bin/sh

pliki=`find $1 -type f`
for pl1 in $pliki 
do
    for pl2 in $pliki
    do
        # sprawdzamy, czy to nie jest ten sam plik i czy pliki sa identyczne
        if `cmp -s $pl1 $pl2`
        then
                echo $pl1 $pl2
        fi
    done
done

Nie da się tego zrobić bez porównywania każdy z każdym, więc pętle muszą być. Jeżeli nie będą to pętle w skrypcie, to będą w jakimś programie. Chyba, żeby jakieś hashowanie lub inne bajerki robić, ale ja jestem przeciwnikiem komplikowania sobie życia :P

0

Dryobates zgadza się, tylko ten mój pieruński nauczyciel zaparł sie aby nie obić pętli w pętli bo dłużej wyszukuje pliki :/ Ale jeśli powiadasz, że nie warto sobie komplikować lajfa więc będe go przekonywał aby tak zostało jak jest:)
Tymczasem wielkie dzięki i big browar dla Ciebie :) [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1